web-dev-qa-db-ja.com

大きなコマンドラインを2行に分割する方法は、スクリプト内で1行として実行されます

私はIBMz/OS390を使用しており、OMVSシェルを使用しています。 「vi」をまったくインストールしていないので、「oedit」を使用します。 OMVSシェルからapp.jarstraighを初期化しようとすると、完全に機能します。つまり、Javaディレクトリに到達し、そこから以下の2つのコマンドを使用してアプリを起動すると、100%動作します。

cd /WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin
./Java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 

OEDITを使用してスクリプトファイルを作成し、両方の行を追加しました。 2番目は2行に分かれていました。残念ながら、実行中に2番目のコマンドラインが異なる2行として扱われていたため、明らかにこのエラーが発生します。

$ ./script_boot_app
Error: Could not find or load main class com.my_comapny_witt_entire_name.
/myMain: ./script_boot_app 3: FSUM7351 not found

おそらく、パスとJavaパッケージ名が1行に収まるほど小さければ、それは起こりません。したがって、私の質問は、OEDITを使用して、複数の行が次のように扱われることを保証するにはどうすればよいですか。シェルから直接コマンドを実行したときとまったく同じように1行ですか?OMVSシェルでstraighと入力して行の終わりに達した場合、当然、以下の行に進み、単一のコマンドラインとして実行されます。どうすればよいですか。 OEDITツールで作成されたスクリプト内の同じですか?

2
Jim C

cdは必要ありません。次の行も同じようにする必要があります。

/WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin/Java -cp \
    /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 

バックスラッシュの継続を使用して、コマンドラインを2行に分割しました。継続して機能させるには、円記号と改行の間に文字があってはなりません。

別の方法は、Javaを含むディレクトリの前にJava binディレクトリをPATH変数に追加することです。コマンドwhich Javaは、どのJavaが使用されるかを教えてくれます。

PATH=/WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin:$PATH
Java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 
1
BillThor

まず、cdの終了ステータスを常に確認することをお勧めします。

cd /WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin && ./Java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain

cmd1 && cmd2は実行を意味しますcmd2 if cmd1成功します。

ここでの問題は、そのスクリプトがそのOMVSシェルによって解釈されていないことだと思います(これはPOSIXシェルであるため、これら2行の解釈で機能するはずです)。

または、もちろん、comapnyコマンドが見つかったときに、これらのタイプミス(wittJava)が原因である可能性があります。これは、それが見つかるためには、現在のディレクトリと/WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin

1

ただのバックスラッシュ

cd /WebSphere/was85/mycel/mynode/AppServer/Java_1.7_64/bin ./Java -cp \
/usr/my.jar com/com.my_comapny_witt_entire_name/myMain
0
Joe