スクリプト(bash)のこの部分は最近まで完全に正常に機能していましたが、$ 1を使用してディレクトリパスを指定すると、ファイルが見つからないというエラーがスローされます。私が知っている唯一の違いは、rhel7にアップグレードした後に動作を停止したことです。
スクリプトの一部は次のとおりです。
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
_はスクリプトの最初の引数であるため、必ずスクリプトの引数としてパスを指定してください。
パスとスクリプト名(スクリプトの完全なパス、たとえば_/path/to/crtMQdir.ksh
_)が必要な場合は、代わりに_$0
_を使用する必要があります。
また、ksh
スクリプトに実行権限があることを確認する必要があります:_chmod +x /path/to/crtMQdir.ksh
_
別の方法として、現在のディレクトリから実行する場合は、現在のスクリプトで_$1
_を_$PWD
_に置き換えるだけです。このスクリプトと同じディレクトリを使用する場合は、_$1
_の代わりに$(dirname $0)
を使用することもできます。