как отобразить количество строк в рабочем файле оболочки

Для моего присвоения я должен отобразить текущее количество строк в файле оболочки, ниже я реализовал wc -l управляйте в моей программе, но вместо того, чтобы отобразить количество строк мое эхо оболочки фактическая команда и имя файла. Как я преодолел бы это?

echo "Hello my name is: Roosevelt Mendieta"
echo "My user name is: $USER"
echo "Todays date and time is: `date`"
echo "This file has: " wc -l mendietaRPgm4.sh  "lines of code"
read -p "Please enter any number " number
TIME=2
echo "Your number $number * 2 = $(($number * $TIME))"
0
задан 1 April 2019 в 19:24

1 ответ

echo "This file has: " wc -l mendietaRPgm4.sh  "lines of code"

Это echo команда с 5 строками, данными как аргументы (и 5 из-за двойных кавычек). То, что Вы хотите, должно использовать $(...) замена команды - безотносительно команды, внутри будет работать, и ее вывод заменит $(...).

echo "This file has: " $( wc -l mendietaRPgm4.sh ) "lines of code"

Это ближе, но не идеально, потому что wc -l file.txt произведет имя файла. Например,

$ wc -l /etc/passwd
47 /etc/passwd

Теперь, если Вы перенаправляете файл в stdin wc команда, это не произведет имя файла (так как stdin технически не имеет никакого имени файла).

echo "This file has: " $( wc -l < mendietaRPgm4.sh ) "lines of code"

Это теперь является надлежащим. Для одобрения я рекомендовал бы читать руководство удара для обнаружения, какие переменные можно использовать для обращения к самому сценарию. Поскольку в настоящее время, Ваш сценарий нацеливает к твердому коду название сценария в себе, и это не гибко, ни практично. После того как сценарий переименован, команда произведет ошибки. Но это - дополнительное осуществление для читателей.

1
ответ дан 25 October 2019 в 07:24

Другие вопросы по тегам:

Похожие вопросы: