我的文件夹中有一个包含 .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
在其周围加上单引号。它与字符串有关吗?