Select the THREE true statements about quoting in bash.
LPIC-1 Exam 101-500, objective 103. GNU and Unix commands medium
Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.
Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.
How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.
The options
Choose 3.
Correct Between single quotes no expansion of any kind takes place, and a single quote cannot appear at all, not even escaped.
Correct. Single quotes are the strong quote. To include a single quote you must end the quoted string, write \' or "'", and start again.
Correct Between double quotes the characters $ and ` keep their special meaning, so parameter expansion and command substitution still happen.
Correct. Double quotes are the weak quote: they suppress word splitting and pathname expansion but leave $, ` and, for those two, the backslash active.
Correct Outside quotes a backslash preserves the literal value of the single character that follows it, the newline excepted.
Correct. \* , \$ and \ (a space) are the usual cases. The one exception is a backslash before a newline: that pair is removed entirely and the command simply continues on the next line.
Not correct Between single quotes a backslash escapes the character that follows it, as it does elsewhere.
Wrong. Inside single quotes a backslash is an ordinary character with no escaping power; echo 'a\tb' prints a\tb.
Not correct Between double quotes an unescaped * is expanded to the matching file names in the current directory.
Wrong. Pathname expansion is one of the expansions double quotes do suppress, which is why "*.txt" reaches the command as a literal pattern.
Why
The three quoting mechanisms differ only in how much they switch off. A backslash disables the special meaning of exactly one following character; single quotes disable everything inside them; double quotes disable everything except parameter expansion, command substitution, arithmetic expansion and history expansion. Choosing between them is a question of which expansions the command still needs.
Where this comes from
- Cited
- manual page bash(1)
Practise this
Reading one question is not practice. The trainer will draw a short set from objective 103 and space the ones you get wrong.
More questions on this objective
- A user starts a new terminal window in a running graphical desktop session, which launches bash as an interactive shell that is NOT a login shell. Which file in the user's home directory does bash read in that case? machine-checked
- In bash, which history expansion re-runs the entire previous command line? machine-checked
- Which bash command prints the literal five characters $USER instead of the current user name? machine-checked
- You want /opt/bin searched for executables, after all the directories already in PATH, in the current bash session and in every command started from it. Which command does that? machine-checked
- There is a passwd manual page in section 1 (the command) and another in section 5 (the /etc/passwd file format). Which command opens the section 5 page? machine-checked
- Select the TWO true statements about shell variables and the environment in bash. machine-checked