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}.

답변2

두 변수를 결합해 볼 수 있습니다.

var1="Hello"
var2="$var1 world!"

basename그러나 코드에서는 변수를 선언하지 않았습니다 !

관련 정보