我的文件夹中有一个包含 .pdf 数量的文件。我将此数字分配给一个变量,fileNum如下所示:
fileNum=$(ls -l *.pdf | wc -l)
echo $fileNum返回这个数字没有任何问题。现在我需要fileNum在 for 循环中使用,但我遇到了问题。
我的 for 循环是:
for i in {1..$fileNum} do var=$(awk 'NR=='$i 'pdfs.file') gs \ -sOutputFile="exgs_"$var \ -sDEVICE=pdfwrite \ -sColorConversionStrategy=Gray \ -dProcessColorModel=/DeviceGray \ -dCompatibilityLevel=1.4 \ -dNOPAUSE \ -dBATCH \ $var done
的$开头fileNum给了我一条错误消息:
awk:第 1 行:在 { 或附近出现语法错误
当我实际使用数字本身(在本例中为 17)时,一切都很好。显然,awk不喜欢这样是因为……某事……我不知道是什么。我该怎么办?
我尝试了其他形式,例如$(fileNum)并filenum在其周围加上单引号。它与字符串有关吗?