私のスクリプトのこの部分は最近まで完全に機能しましたが、$ 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
。