Скрипт report.sh считает строки в файлах, которые ему передали. С notes.txt он справляется. Теперь нужно посчитать строки в my file.txt. В имени пробел, поэтому ты берёшь его в кавычки, как в уроке «Справка и оболочка».
Передай скрипту имя с пробелом
Ты в ~/args-lab. Посчитай строки скриптом report.sh: сначала в notes.txt, потом в «my file.txt» — имя в кавычках.
Сначала предположи
В «my file.txt» три строки, имя взято в кавычки. Что напечатает ./report.sh "my file.txt"?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
Почему имя распалось на my и file.txt, хотя ты взял его в кавычки?
-
lsпоказывает один файлmy file.txt. Файловmyиfile.txtнет — поэтому wc о них и сообщил. -
Кавычки ничего не меняют в имени, они держат его одним словом.
lsпоказывает файлmy file.txtс пробелом. -
wc -l "my file.txt"в терминале печатает3 my file.txt: получив имя целиком, wc открыл файл.
Имя дошло до report.sh одним аргументом, а внутри скрипта снова распалось.