Shell-Script

如何使兩行中的大型命令行在腳本中作為單行執行

  • August 21, 2018

我正在使用 IBM z/OS390,並且正在使用 OMVS shell。我根本沒有安裝“vi”,所以我使用“oedit”。如果我嘗試從 OMVS shell 直接初始化 app.jar,它可以完美執行。我的意思是,如果我到達 java 目錄並使用以下兩個命令從那裡啟動應用程序,它可以 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 創建了一個腳本文件並添加了這兩行。第二個斷成兩行。不幸的是,我顯然收到了這個錯誤,因為在執行時,第二個命令行被視為不同的兩行。

$ ./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 包名稱足夠小以適合一行,它就不會發生。所以我的問題是:我如何使用 OEDIT 並保證多行將被視為一行,就像我直接從 shell 執行命令時所做的那樣?當在 OMVS shell 中鍵入 straigh 並到達行尾時,我自然會在下面的行中繼續,並將其作為單個命令行執行。如何在 OEDIT 工具中創建的腳本中執行相同的操作?

cd不應該是必需的。以下行應該做同樣的事情。

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

我通過使用反斜杠延續將命令行分成兩行。反斜杠和換行符之間必須沒有字元才能繼續工作。

另一種方法是將您的 Java bin 目錄添加到 PATH 變數中,然後再添加任何包含 java.xml 的目錄。該命令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 

引用自:https://unix.stackexchange.com/questions/286577