我想为此命令创建一个环境变量:
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 在扩展时并没有按照我希望的方式传递它(由于某种类型的标准合规性)。
我还没有真正使用过
export equal==
,但我有它(我正在尝试随机的事情让它工作)。我尝试通过管道传输命令,但这很愚蠢,不应该起作用。
我认为问题在于
=
环境变量中的符号(可能是假设其他分配的开始)。元字符类型输入不起作用(即\=
代替=
)。
这方面的一些帮助将会非常有帮助。
答案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
这会起作用。我不能说这是最好的解决方案,但是,它按照我需要的方式工作,并且人们可能需要它。 &&或者;(用于使用一个环境变量触发多个命令)并没有按照我预期的方式工作,因此我转向了这个可接受的解决方案目前。如果有人提出更好的东西或对此有任何改进,请发表评论。