对于目录中的一堆文件,我想获取每个文件的行数,并将其存储 在变量中并执行其他操作。如果我这样做的话,通过 shell 我可以毫无问题地做到这一点
read NLINES <<< $( cat file | wc -l )
但如果我在脚本中这样做
#!/bin/bash
for i in `ls *.dat `
do
read NLINES <<< $( cat $i | wc -l )
done
我明白了
Syntax error: redirection unexpected
为什么有区别?我该如何解决它?
最佳答案
我敢打赌你的默认 shell 不是 bash,而是其他东西。保留 #!/bin/bash
并将其替换为 #!/bin/sh
,让您的脚本使用默认 shell。
当我尝试在 Ubuntu 上使用一些 debian 脚本时,我以另一种方式犯了这个错误,其中 #!/bin/sh
的行为与我假设的 #!/bin/bash 不同
。
关于bash - 在 shell 和脚本中计算文件行数会产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868774/