0

我有一个简单的代码是:

#!/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

我想做的是:

  • 查找 pdfs 或 eps 文件并使用它们的文件名填充 pdfs.file 和 eps.file。
  • 逐行遍历并获取这些文件名并附加到 $pwd。
  • 然后将 $pwd$var 附加到 Latex 中的 include graphics 命令。
4

2 回答 2

0

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

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

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

这成功返回以下内容:

/tmp
/tmp
文件内容:/tmp

于 2012-07-30T17:00:18.650 回答
0

您是否使用 Windows 编辑器编写了 bash 文件?也许您对线路终结器有疑问。试试dos2unix bashfile.sh

于 2012-07-30T17:18:18.853 回答