在教程和操作指南中,我经常看到命令组合在一起。例如,
sudo apt-get update && sudo apt-get install pyrenamer
Run Code Online (Sandbox Code Playgroud)
似乎有四种可能的连接器:&,&&,||和;。尽管& 连接器对我来说很清楚(它将进程发送到后台并使终端可用),但不清楚&&和之间的区别;。||直到 Kaya 发表评论我才知道。
以下问题涉及两个连接器之间的区别,但主要在评论中进行:
所以这里有一些相关的问题:
;和 和有&&什么区别?cd /somewhere_else; rm -Rf *如果命令链中的第一个元素失败,则类似命令可能会产生破坏性后果。我是 Linux 和 Bash 脚本的新手。在工作中,我看到 Bash 脚本的结构与此类似:
mkdir build && cd build && touch blank.txt
Run Code Online (Sandbox Code Playgroud)
或者:
mkdir build; cd build; touch blank.txt
Run Code Online (Sandbox Code Playgroud)
甚至是异国情调:
COMMAND="mkdir build && cd build && touch blank.txt"
eval ${COMMAND}
Run Code Online (Sandbox Code Playgroud)
最后一个示例给出了一个可能的用例,其中一行可能有用,但通常以下内容更易于阅读并且(至少对我而言)允许您直观地调试脚本:
mkdir build
cd build
touch blank.txt
Run Code Online (Sandbox Code Playgroud)
在一条线上塞满所有东西是否有技术优势?
我想要一个名为“ServerStart”之类的自定义命令,或者是两个命令的组合,一个接一个。
cd .Serverjava -Xmx7168M -Xms7168M -jar server.jar我该如何做到这一点,使其成为一个终端命令?
示例:add-apt-repository进程终止后,立即运行apt-get update- 无需手动输入命令。
有没有办法做到这一点?是否可以在不使用密码的情况下设置这样的组合sudo?(虽然我不介意哪种方式)
我问以下问题:如何将两个命令链接在一起,以便每当我执行特定命令时,它总是执行其后的链接命令?