天天看點

linux 一行兩個指令,執行在一行中組合多個Linux指令

我試圖在一行中合并多個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