带有等号和 && 运算符的环境变量

带有等号和 && 运算符的环境变量

我想为此命令创建一个环境变量:

git --git-dir= echo test-folder/.git/ add Steps-to-follow.txt && git --git-dir= echo test-folder/.git/ commit

这是我的相关摘录~/.bash_profile

export git11='git --git-dir='
export equal==
export git12='test-folder/.git/ add Steps-to-follow.txt && git --git-dir='
export git13='test-folder/.git/ commit'

$variable-name对所有这些变量进行了一个又一个的尝试,但我认为 shell blob 在扩展时并没有按照我希望的方式传递它(由于某种类型的标准合规性)。

  1. 我还没有真正使用过export equal==,但我有它(我正在尝试随机的事情让它工作)。

  2. 我尝试通过管道传输命令,但这很愚蠢,不应该起作用。

  3. 我认为问题在于=环境变量中的符号(可能是假设其他分配的开始)。元字符类型输入不起作用(即\=代替=)。

这方面的一些帮助将会非常有帮助。

答案1

我不熟悉git,所以我不太明白你想要做什么——特别是,为什么你的第一个命令有这个词echo两次,但后来你没有把它放入你的变量中?但我猜你想做这样的事情:

Avineshwar_func() {
    git --git-dir=“1美元”echo test-folder/.git/ add Steps-to-follow.txt && git --git-dir=“2美元”回显测试文件夹/.git/提交
}

然后如果你说

Avineshwar_func foo 酒吧

这相当于说

git --git-dir=echo test-folder/.git/ add Steps-to-follow.txt && git --git-dir=酒吧回显测试文件夹/.git/提交

当然,您可以将名称更改为Avineshwar_func 您想要的任何名称;例如,git1

一旦你让它基本上工作起来,你应该添加错误处理;例如,

git1() {
    if [ -d "$1" ] && [ -d "$2" ]
    然后
        git --git-dir="$1" echo test-folder/.git/ 添加 Steps-to-follow.txt && git --git-dir="$2" echo test-folder/.git/ commit
    别的
        echo "用法: git1 dir1 dir2"
        返回1
}

答案2

这是一个工作解决方案对于它(RHEL 7 测试):

$ export test1='git --git-dir'
$ export test2='my-folder/.git/ add Steps-to-follow.txt'
$ #; git --git-dir'
$ export test3='my-folder/.git/ commit'
$ export git1=$test1=$test2
$ export git2=$test1=$test3
$ $git1
$ $git2

这会起作用。我不能说这是最好的解决方案,但是,它按照我需要的方式工作,并且人们可能需要它。 &&或者;(用于使用一个环境变量触发多个命令)并没有按照我预期的方式工作,因此我转向了这个可接受的解决方案目前。如果有人提出更好的东西或对此有任何改进,请发表评论。

相关内容