echo$と変数

echo$と変数

以下のように最後のディレクトリを印刷しようとしています。

#!/bin/bash
dirc="/a/b/"
i=3  
`echo "$dirc" | awk -F / '{ print ""$"i"}'`

「b」を印刷する必要がありますが、そのようなことは発生しません。

ベストアンサー1

iAWK変数はAWKスクリプトのAWK変数であり、AWK変数を設定する必要があります。

#!/bin/bash
dirc="/a/b/"
echo "${dirc}" | awk -F / -v i=3 '{print $i}'

iシェルが理解する方法で値を指定できます。

i=3
echo "${dirc}" | awk -F / -v "i=${i}" '{print $i}'

あなたできるAWKスクリプトでシェルに変数を評価させることも可能ですが、これは問題を引き起こすだけです。

i=3
echo "${dirc}" | awk -F / "{print \$${i}}"

おすすめ記事