我試圖在一行中合并多個linux指令來執行部署操作.
例如
cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install
解決方法:
如果你隻想在前一個指令成功的情況下執行每個指令,那麼使用&&和它們組合它們.操作符:
cd /my_folder && rm *.jar && svn co path to repo && mvn compile package install
如果其中一個指令失敗,則不會執行其後的所有其他指令.
如果要執行所有指令而不管先前的指令是否失敗,請用分号分隔它們:
cd /my_folder; rm *.jar; svn co path to repo; mvn compile package install
在你的情況下,我認為你想要第一種情況,即下一個指令的執行取決于前一個指令的成功.
您還可以将所有指令放在腳本中并執行該指令:
#! /bin/sh
cd /my_folder \
&& rm *.jar \
&& svn co path to repo \
&& mvn compile package install
(行末尾的反斜杠用于防止shell認為下一行是新指令;如果省略反斜杠,則需要在一行中編寫整個指令.)
将其儲存到檔案,例如myscript,并使其可執行:
chmod +x myscript
您現在可以像機器上的其他程式一樣執行該腳本.但是,如果不将其放在PATH環境變量中列出的目錄中(例如/usr/local/bin,或某些Linux發行版〜/ bin),則需要指定該腳本的路徑.如果它在目前目錄中,則使用以下指令執行:
./myscript
腳本中的指令與第一個示例中的指令的工作方式相同;如果前一個指令成功,則僅執行下一個指令.要無條件執行所有指令,隻需在每行指令中列出:
#! /bin/sh
cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install
标簽:linux,command-line
來源: https://codeday.me/bug/20190926/1820724.html