2つの変数を連結できません。

2つの変数を連結できません。

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}

おすすめ記事