由于我是UNIX初学者,请原谅。
我想编写一个shell脚本,可以要求用户输入文件名并输出该文件中的行数,这是我的代码:
echo "Pls enter your filename:"
read filename
result=wc -l $filename
echo "Your file has $result lines"
Run Code Online (Sandbox Code Playgroud)
但是,由于它抱怨标识符“文件名”,我无法使其正常工作。专家可以帮忙吗?谢谢!
至少在中有效bash。好吧,read作品很好。但是,对的分配result可能应该是:
result=$(wc -l $filename)
Run Code Online (Sandbox Code Playgroud)
但是,由于该命令同时输出了行数和文件名,因此您可能需要稍作更改以获取行数,例如:
result=$(cat $filename | wc -l)
Run Code Online (Sandbox Code Playgroud)
要么:
result=$(wc -l <$filename)
Run Code Online (Sandbox Code Playgroud)
您拥有的命令:
result=wc -l $filename
Run Code Online (Sandbox Code Playgroud)
将设置result为文字wc,然后尝试执行-l命令。
例如,以下五行脚本:
#!/bin/bash
echo "Pls enter your filename:"
read filename
result=$(cat $filename | wc -l)
echo "Your file has $result lines"
Run Code Online (Sandbox Code Playgroud)
在运行并给出其名称作为输入时,将产生以下内容:
Your file has 5 lines
Run Code Online (Sandbox Code Playgroud)
如果您不使用bash,则需要指定要使用的外壳。不同的外壳具有不同的处理方式。