B=master U='my.email@email.com' curl -u "${U}" "https://bitbucket.org/myteam/pod-dev/raw/${B}/install.bash"
我被问到:
Enter host password for user '':
请注意,“U”缺失。
还进行了卷曲:
GET /myteam/pod-dev/raw//install.bash HTTP/1.1
此外,B缺失(分支)
macOS Sierra 10.12.2
$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)
Copyright (C) 2007 Free Software Foundation, Inc.
答案 0 :(得分:4)
您正在使用它们的变量赋值是命令的一部分。在您的情况下,shell会在实际设置之前尝试展开"${A}"
,"${B}"
- 在解析命令期间。
您可以按;
:
B=master; U='my.email@email.com'; curl -u "${U}" "https://bitbucket.org/myteam/pod-dev/raw/${B}/install.bash"
这样他们就是3个单独的命令。
答案 1 :(得分:2)
bash会首先尝试扩展变量,但此时您还没有设置它们。例如见:
$ x=foo echo "$x"
>
$ x=foo; echo "$x"
> foo
答案 2 :(得分:-1)
尝试这样而不是你的命令:
export B=master; export U='my.email@email.com' ; curl -u "$U" "https://bitbucket.org/myteam/pod-dev/raw/$B/install.bash"