次の構造のファイルがあります。
ma${token}jid-azimi-865131021
javad-ya${token}rip-865132012
これは私のプログラムです:
IFS="-"
token="12345678"
cat input.txt | while read col1 col2 col3; do
echo ${col1}
echo ${col2}
echo ${col3}
echo "********************************"
done
${token}
ファイルの読み込み中に挿入したいです。トークンは動的単語なので、ファイル内で毎回変更することはできません。それで、${token}
一度ファイルに追加してみました。ただし、プログラムの出力は次のようになります。
ma${token}jid
azimi
865131021
********************************
javad
ya${token}rip
865132012
********************************
なぜこれが起こるのですか?ma${token}jid
次のように展開して挿入する必要がありますecho ma${token}jid
。12345678
ベストアンサー1
エコーされた変数は変数拡張の影響を受けません。eval
前に追加します。単純な場合は機能できますが、echo
文字列に引用符または引用符が含まれていると|
壊れる可能性があります。または、次のものを交換してください。
echo ${col1/'${token}'/$token}