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

私がやろうとしていることはこれです:

  • pdfまたはepsファイルを検索し、pdfs.fileとeps.fileにファイル名を入力します。
  • 行ごとにステップスルーし、これらのファイル名を取得して$pwdに追加します。
  • 次に、latexのincludegraphicsコマンドに$pwd$varを追加します。
4

2 に答える 2

0

Windowsエディターを使用してbashファイルを作成しましたか?たぶん、ラインターミネータに問題があります。試してみてくださいdos2unix bashfile.sh

于 2012-07-30T17:18:18.853 に答える
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 に答える