对于目录中的一堆文件,我想获得每个文件的行数,然后存储它 在一个变量和做其他的东西。通过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
为何与众不同?我怎么能解决它?
答案 0 :(得分:3)
我打赌你的默认shell不是bash而是其他东西。保留#!/bin/bash
并将其替换为#!/bin/sh
,让您的脚本使用默认shell。
当我尝试在Ubuntu上使用一些debian脚本时,我犯了另一个错误,其中#!/bin/sh
的行为与我假设的#!/bin/bash
不同。