每次某个命令终止时如何自动执行命令?
示例:一旦add-apt-repository
进程终止,立即运行apt-get update
– 无需手动输入命令。
有没有办法做到这一点? 是否可以在不使用sudo
密码的情况下设置这样的组合? (虽然我不介意任何一种方式)
我问以下内容: 如何将两个命令链接在一起,这样每当我执行一个特定的命令时,它总是执行后面的链接命令?
使用别名或简单的bash函数可以解决各种问题,但是您可以为命令编写一个小包装器并将其粘贴到/usr/local/bin
,该路径优先于您的路径。
这是创建脚本并同时chmod它的一个小技巧 。
它会在/usr/local/bin/add-apt-repository
转储可执行的包装器脚本。
sudo install -b -m 755 /dev/stdin /usr/local/bin/add-apt-repository << 'EOF' #!/bin/sh /usr/bin/add-apt-repository "$@" apt-get update EOF
要解决此问题,只需删除/usr/local/bin/add-apt-repository
。
如果你想做一些更有成效的事情(比如链接apt-get install
和apt-get update
以便你在安装之前总是更新),我们只需要扩展脚本来查看参数。
sudo install -b -m 755 /dev/stdin /usr/local/bin/apt-get << 'EOF' #!/bin/sh if [ "$1" = "install" ] ; then /usr/bin/apt-get update fi /usr/bin/apt-get "$@" EOF
虽然考虑到这将在每次 apt-get install
调用之前运行更新。 这可能听起来很有帮助,但在实践中可能真的很乏味。
通常,
sudo bash -c "command1; command2"
如果只想在command1成功完成后运行command2,则可以使用&&
而不是;
。
sudo bash -c "command1 && command2"
我将使用以下命令作为您的示例。
sudo bash -c "add-apt-repository && apt-get update"
要以特定顺序执行某些命令,请使用shell脚本。 您所要做的就是 – 按Ctrl + Alt + T打开终端并按照步骤 –
1.输入gedit filename.sh
2.输入此命令后,将打开一个文本编辑器,您可以在每行中键入一个所需的命令。 例如,
sudo add-apt-repository
apt-get update
3.输入所有命令后,使用GUI保存并退出,或按Ctrl + S和Ctrl + Q.
4.现在你将返回终端。 在终端上运行sh filename.sh
并执行命令,前提是命令中没有错误。
此外,如果从超级用户帐户(root)登录,则不必在命令中键入sudo
。
最简单的方法是运行:
sudo add-apt-repository && sudo apt-get update
如果第一个命令成功完成,则第二个命令将运行。