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
그러나 코드에서는 변수를 선언하지 않았습니다 !