変数名を含むデータ/入力を使用するスクリプト

変数名を含むデータ/入力を使用するスクリプト

したがって、複数のコンピュータで実行されているスクリプトについて読みたいディレクトリのリストを含む "Directories.dat"ファイルがあります。したがって、ファイルのディレクトリリストは通常​​変数として定義されます。

#Directories.Dat
/home/$USER
$WORKDIR
$APPDIR
...etc 

/home/$USERただし、スクリプトがDirectory.datファイルを実行すると、$ lineが代わりに設定されます。/home/myuser

#!/bin/bash
#myscript.sh
for line in $(cat Directories.dat) 
do 
SomeCommand $line
done

使用してはいけませんかcatevalこれを行うのに適した唯一の機能ですか?それともSomeCommand $(eval echo $line) #DangerZone 、Directory.datファイルの行を読み取り、保存された値とともに変数を表示する別の方法はありますか?

ベストアンサー1

問題から抜け出す

#!/bin/bash
source bashrc.sh mysources.sh
#myscript.sh
for line in $(cat Directories.dat) 
do 
SomeCommand $(echo $line | envsubst)
done

おすすめ記事