为什么for循环中的BASH命令不起作用

时间:2012-07-30 16:36:21

标签: bash for-loop

我有一个简单的代码:

#!/bin/bash
#LaTex code generator for figures.
ls *.pdf > pdfs.file
ls *.ps > ps.file

pwd=$(pwd)

for i in {1..2}
do
# var=$(awk 'NR==$i' 'pdfs.file')
 echo $pwd
 echo $pwd > testfile
done

为什么for循环中的命令不起作用? $ pwd没有回显,也不是创建的测试文件。

我尝试了这些命令而没有终端中的for循环,它们工作正常。

我的bash文件可由chmod +x bashfile.sh

执行

我想做的是:

  • 查找pdf或eps文件,并使用文件名填充pdfs.file和eps.file。
  • 逐行逐步获取这些文件名并附加到$ pwd。
  • 然后将$ pwd $ var附加到latex中的include graphics命令。

2 个答案:

答案 0 :(得分:0)

我不确定你做错了什么,但这对我来说很好用:

for i in {1..2}; do
    echo $PWD
    echo $PWD > /tmp/testfile
done

echo "File contents: $(cat /tmp/testfile)"

这成功返回以下内容:

  

的/ tmp
  / tmp目录
  文件内容:/ tmp

答案 1 :(得分:0)

您是否使用Windows编辑器编写了bash文件?也许你遇到线路终结器的问题。试试dos2unix bashfile.sh