我需要在 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}
。
答案2
您可以尝试结合两个变量:
var1="Hello"
var2="$var1 world!"
但在您的代码中,您没有声明basename
变量!