Centos 6システムのbashで2つの文字列変数を連結する必要があります。
for f in *.tar.gz;
do
basename ${f%.tar.gz}
echo $basename
dbaddress='mysql/*.sql'
path="${basename}${dbaddress}"
echo $path
tar -zxvf $f $path
done
このスクリプトは、basename / mysql /ディレクトリにあるすべての.sqlファイルを抽出する必要があります。しかし、私のコードの出力は次のようになります。
basename
mysql/*.sql
tar: mysql/*.sql: Not found in archive
tar: Exiting with failure status due to previous errors
ご覧のとおり、 $basename は $dbaddress の前に追加されません。私は何を逃したことがありませんか?
ベストアンサー1
変数を参照していますが、basename
(を使用して$basename
)何も割り当てていません。これはbash
空の文字列として読み込まれることを意味します。あなたはそれを試したいかもしれませんbasename=${f%.tar.gz}
。