Running LaTeX creates a number of files, including the main PDF (or
DVI) output but also including others. These files are named with the
so-called jobname. The most common case is also the simplest,
where for instance the command pdflatex thesis creates
thesis.pdf and also thesis.log and thesis.aux.
Here the job name is thesis.
In general, LaTeX is invoked as latex-engine
options argument, where latex-engine is
pdflatex, lualatex, etc. (see TeX engines). If argument does not start with a backslash, as is
the case above with thesis, then TeX considers it to be the
name of the file to input as the main document. This file is referred
to as the root file (see Splitting the input, and
\input). The name of that root file, without the .tex
extension if any, is the jobname. If argument does start with a
backslash, or if TeX is in interactive mode, then it waits for the
first \input command, and the jobname is the argument to
\input.
There are two more possibilities for the jobname. It can be directly
specified with the -jobname option, as in pdflatex
-jobname=myname (see Command line input for a practical example).
The final possibility is texput, which is the final fallback
default if no other name is available to TeX. That is, if no
-jobname option was specified, and the compilation stops before
any input file is met, then the log file will be named
texput.log.
A special case of this is that in LaTeX versions of (approximately)
2020 or later, the jobname is also texput if the first
\input occurs as a result of being called by either
\documentclass or \RequirePackage. So this will produce
a file named texput.pdf:
pdflatex "\documentclass{minimal}\begin{document}Hello!\end{document}"
However, this special case only applies to those two commands. Thus, with
pdflatex "\documentclass{article}\usepackage{lipsum}\input{thesis}"
the output file is lipsum.pdf, as \usepackage calls
\input.
Within the document, the macro \jobname expands to the jobname.
(When you run LaTeX on a file whose name contains spaces, the string
returned by \jobname contains matching start and end quotes.)
In the expansion of that macro, all characters are of
catcode 12 (other) except that spaces are category 10,
including letters that are normally catcode 11.
Because of this catcode situation, using the jobname in a conditional
can become complicated. One solution is to use the macro
\IfBeginWith from the xstring package in its star
variant, which is insensitive to catcode. For example, in the
following text the footnote “Including Respublica Bananensis
Francorum.” is only present if the task name starts with
my-doc.
If a democracy is just a regime where citizens vote then
all banana republics \IfBeginWith*{\jobname}{my-doc}%
{\footnote{Including Respublica Bananensis Francorum.}}{} are
democracies.
Manipulating the value of \jobname inside of a document does not
change the name of the output file or the log file.