2017-12-07 5 views
1
while 
    read -r line 
     do 
      readlink -f $line > a.txt 
done < $1 

$ 1で渡された30のシンボリック宛先パス名を含むファイルがあります。このファイルを1行ずつ読み込み、各パスのls結果をファイルa.txtに保存したいとします。問題は$ 1で言及された最後のパス名しか取らないということです。その上位29行を無視します。どうして?readlinkはファイルに記述されたパス名を取ることができません

答えて

1

変更

readlink -f $line > a.txt 

readlink -f "$line" >> a.txt 

>>

にファイルに追加またはそれが存在しない場合は、ファイルを作成します。

>が存在する場合は上書きされ、存在しない場合は上書きされます。

https://serverfault.com/a/196735

+0

ありがとう先生。出来た!!!どうもありがとうございます。 :)私はあなたに評判を与えたいが、傾けることはできない。 :( – Pompy

+0

また、リダイレクトをループの外側に 'done> a.txt' – tripleee

+0

...置いて、引用符を修正してください。https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around- a-shell-variable – tripleee

関連する問題