내 스크립트(bash)의 이 부분은 최근까지 완벽하게 작동했지만 $1을 사용하여 디렉터리 경로를 제공하면 파일을 찾을 수 없다는 오류가 발생합니다. 내가 아는 유일한 차이점은 rhel 7로 업그레이드한 후 작동이 멈췄다는 것입니다.
이것은 스크립트의 일부입니다.
MOUNTINST=/opt/mqm80_Inst1
$1/crtMQdir.ksh $MOUNTINST/bin 755 mqm
$1/crtMQdir.ksh $MOUNTINST/logs 755 mqm
$1/crtMQdir.ksh $MOUNTINST/java/lib/soap 755 mqm
올바른 디렉터리 경로에 있고 파일이 있는지 확인하세요.
/var/mqm/trace/WMQUNX8000.02]
$ ll *crt*
-rwxr-xr-x. 1 mqm mqm 826 Apr 10 2014 crtMQdir.ksh
내가 얻는 오류는 다음과 같습니다.
./test5.sh: line 4: /crtMQdir.ksh: No such file or directory
./test5.sh: line 6: /crtMQdir.ksh: No such file or directory
./test5.sh: line 8: /crtMQdir.ksh: No such file or directory
내가 뭐 놓친 거 없니?
답변1
$1
스크립트에 대한 첫 번째 인수 에서처럼 경로를 스크립트에 대한 인수로 전달해야 합니다 .
이는 경로와 스크립트 이름(예: 스크립트의 전체 경로)을 원하는 경우에 /path/to/crtMQdir.ksh
필요합니다 $0
.
ksh
또한 스크립트에 실행 권한이 있는지 확인해야 합니다 .chmod +x /path/to/crtMQdir.ksh
현재 디렉터리에서 실행하려는 경우 다른 방법은 현재 스크립트를 간단히 바꾸는 것입니다 $1
. $PWD
스크립트와 동일한 디렉토리를 사용하려면 를 $(dirname $0)
사용할 수도 있습니다 $1
.