쉘 스크립트에서 변수에 대한 CD가 작동하지 않습니다.

쉘 스크립트에서 변수에 대한 CD가 작동하지 않습니다.

다음과 같은 변수가 있습니다

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man

cd $path를 수행하면 해당 파일이나 디렉토리가 없다고 표시됩니다.

하지만 이 경로는 실제로 /opt/var/usr/man에 존재합니다. 어떤 제안이 있습니까?

답변1

문제는 변수 할당 시 구문 오류입니다.

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man

.. 변수 할당 앞에 $.. 이 올 수 없기 때문에 작동하지 않습니다.

다음과 같이 진행해야 합니다:

a=opt
b=var
c=usr
dir=/$a/$b/$c/man
cd $dir

이름은 같지만 상황이 다른 두 변수를 사용하는 것은 혼란을 야기할 수 있으므로 나쁜 생각이기 때문에 최종 변수 이름을 변경했습니다. ( PATH매우 중요한 환경변수입니다.)

답변2

이것을 시도하면 echo $a$b$c이것을 얻을 것이다

[root@centseven ~]# echo $a$b$c
/optvarusr

그래서 이것은 실행이 아닙니다.

마지막 변수는 다음과 같아야 합니다.path=/$a$b$c/man

변수를 다음으로 변경하십시오.

$a=/opt
$b=/var
$c=/usr

그럼 시도해 보세요 echo $path. 저한테는 효과가 있었어요

[root@centseven ~]# echo $path
/opt/var/usr/man

관련 정보