【问题标题】:Alias Multiple Commands in LinuxLinux 中的多个命令的别名
【发布时间】:2017-02-15 22:43:50
【问题描述】:

我正在使用git 管理一个网站。 git repository 的要求之一是 bare = true。它使用接收后挂钩来管理来自本地计算机的推送。问题是有时我想使用 wp-admin 在线视图更改我网站上的 WordPress 目录。那么我只需ssh 进入目录并运行git --work-tree="BLAH" add .git --work-tree="BLAH" commit -m "BLAH"。有没有办法设置一个别名,比如 alias git="git --work-tree=\"BLAH\"" 并让它适用于所有 git 命令?

【问题讨论】:

  • 别名仅适用于静态值和操作,即 alias workDir='cd $workDir' 。当你想处理参数时,你需要使用函数。在此处搜索 [bash] function,您会找到 100 个示例。祝你好运。
  • 老实说,不搞砸部署的最好方法是使其自动化,以 Capistrano 为例。

标签: linux git bash alias website-deployment


【解决方案1】:

如果有人好奇我是如何解决它的(感谢 shellter's comment),我编写了一个 bash 脚本,然后提示用户输入如下:

#!/bin/bash
function fix {
        git --work-tree="PATH_TO_WORKING_TREE" $1
}
echo -n "git "
read -e INPUT
until [ "$INPUT" = "quit" ]; do
        fix $INPUT
        echo -n "git "
        read -e INPUT
done

运行它:

user@server [repo.git] $ git-fix
git status
# On branch master
nothing to commit (working directory clean)
git quit

【讨论】:

    【解决方案2】:

    有时alias 是一个很棒的工具。然后有时事情开始变得过于复杂,而 shell 脚本更好。

    要创建执行其他命令的单个命令,只需创建一个文件(可能称为git-add-all)然后键入以下内容:

    #! /bin/bash
    
    git --work-tree="BLAH" add .
    git --work-tree="BLAH" commit -m "BLAH"
    

    然后你可以通过简单地运行脚本:

    bash git-add-all
    

    更好的是,让脚本可执行:

    chmod +x git-add-all
    

    然后你可以像使用任何命令一样使用它:

    ./git-add-all
    

    进阶提示:

    为了能够从任何 git 目录运行脚本,您可以将文件复制/移动到 $PATH 中的目录之一。例如/usr/loca/bin。然后你可以简单地运行git-add-all 而不是./git-add-all

    更好的是创建您自己的个人脚本目录并将其包含在$PATH 中。我个人使用~/bin。要将目录添加到$PATH,您只需将以下内容添加到.bashrc.profile

    export PATH=/home/username/bin:$PATH
    

    或者如果您是为 root 用户执行此操作:

    export PATH=/root/bin:$PATH
    

    【讨论】:

      【解决方案3】:

      Linux 中有一个.bashrc 文件。你可以编辑它来为你最喜欢和常用的命令创建alias

      要创建别名,请将别名永久添加到您的 .bashrc 文件中

      gedit ~/.bashrc
      

      别名应如下所示:

      alias al='cmd'
      

      您可以通过here了解更多信息。

      【讨论】:

      • 我知道 .bashrc 并且已经尝试过了。当我运行git 时,它会展开它,但如果命令有两个部分(如git status),它不会展开它。
      • 尝试将您的别名命名为 git 以外的名称。例如,ll 是ls -alF 的别名。如果您输入ll -hll -a,它仍然有效。
      猜你喜欢
      • 2010-10-19
      • 1970-01-01
      • 2013-01-16
      • 2020-04-21
      • 2014-03-10
      • 2010-10-31
      • 2017-07-04
      • 1970-01-01
      • 2011-06-01
      相关资源
      最近更新 更多