如何在命令行中使用单个命令运行一系列命令?

Shp*_*ord 2 linux bash shell command-line

我通常运行以下命令来部署特定的应用程序:

compass compile -e production --force
git add .
git commit -m "Some message"
git push
git push production master
Run Code Online (Sandbox Code Playgroud)

如何将其包装成单个命令?

我需要能够自定义提交消息.所以命令可能看起来像:

deploy -m "Some message"
Run Code Online (Sandbox Code Playgroud)

mou*_*iel 5

有两种可能性:

  • 一个脚本,正如其他人的回答

  • 一个函数,在.bash_profile中定义:

    deploy() {
        compass compile -e production --force &&
        git add . &&
        git commit -m "$@" &&
        git push &&
        git push production master
    }
    
    Run Code Online (Sandbox Code Playgroud)

如果没有参数,您将有第三个选项,即别名:

alias deploy="compass compile -e production --force &&
              git add . &&
              git commit -m 'Dumb message' &&
              git push &&
              git push production master"
Run Code Online (Sandbox Code Playgroud)

  • 如果以前的任何命令失败,您确实需要中止.全部替换 ';' 使用'&&',并将'&&'放在每行的末尾,但是在函数定义的最后一行. (3认同)