对于我的任务,我需要显示 shell 文件中的当前行数,下面我已经wc -l
在我的程序中实现了命令,但是我的 shell 回显不是显示行数,而是实际的命令和文件名。我将如何克服这一点?
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))"
这是
echo
带有 5 个字符串作为参数给出的命令(和 5 因为双引号)。您想要的是使用$(...)
命令替换 - 里面的任何命令都将运行并且其输出将替换$(...)
.这更接近,但并不理想,因为
wc -l file.txt
会输出文件名。例如现在,如果您将文件重定向到
wc
命令的标准输入,它不会输出文件名(因为stdin
技术上没有文件名)。现在这是正确的。对于布朗尼点,我建议阅读bash 手册以找出可以用来引用脚本本身的变量。因为目前,您的脚本旨在对脚本名称进行硬编码,这既不灵活也不实用。一旦脚本被重命名,该命令将产生错误。但这对读者来说是一个额外的练习。