내 쉘 스크립트에서 cd ​​명령이 작동하지 않습니다

내 쉘 스크립트에서 cd ​​명령이 작동하지 않습니다

.sh디렉토리를 생성하고 일부 파일을 그 디렉토리로 이동하는 스크립트가 있습니다 .
방금 만든 새 디렉터리로 디렉터리를 변경하고 싶지만 명령으로는 작동하지 않습니다.

cd ./$dirname1${iloop}

$dirname1${iloop}새 디렉토리의 이름은 어디에 있습니까? 디렉토리를 어떻게 변경합니까?

mkdir ./$dirname1${iloop}

`cp $in1 ./$dirname1${iloop}`

`cp $plot  ./$dirname1${iloop}`

`cp $tmpl1 ./$dirname1${iloop}`

`cp $in2 ./$dirname1${iloop}`

`cp $tmpl2 ./$dirname1${iloop}`

`cp $data ./$dirname1${iloop}`

`cd ./$dirname1${iloop}`

답변1

스크립트를 있는 그대로 게시했다고 가정하면 이 명령은 다음과 같습니다.

`cd ./$dirname1${iloop}`

프로세스 대체를 사용하십시오. 진드기

`

앞과 끝은 새로운 유형의 이전 구문입니다 $(). 교체 내부와 교체 없이 파일을 복사하면 지속적인 결과가 발생하지만 cd프로세스 교체 또는 하위 쉘에 있는 경우 디렉터리 변경은 해당 컨텍스트에서만 유효합니다. 기본 쉘로 돌아가면 바로 이전 위치로 돌아갑니다.

명령줄에서 다음 두 가지를 비교하십시오.

$(cd /bin) && pwd

그리고

cd /bin && pwd

관련 정보