Questions tagged «assignment»



3
基于环境变量的条件分配
在bash脚本中,我要分配一个局部变量,以便该值取决于外部的全局环境变量($MYAPP_ENV)。 if [ "$MYAPP_ENV" == "PROD" ] then SERVER_LOGIN=foobar123@prod.example.com else SERVER_LOGIN=foobar987@test.example.com fi 有没有一种较短的(到目前为止还很干净)编写上述作业的方法?(大概使用某种条件运算符/内联if。)

2
分配类似于具有退出状态的命令,除了何时有命令替换?
请参阅以下示例及其在POSIX Shell中的输出: false;echo $?或false || echo 1:1 false;foo="bar";echo $?或foo="bar" && echo 0:0 foo=$(false);echo $?或foo=$(false) || echo 1:1 foo=$(true);echo $?或foo=$(true) && echo 0:0 正如在/programming/6834487/what-is-the-variable-in-shell-scripting中投票最高的答案所提到的: $? 用于查找最后执行的命令的返回值。 在这种情况下,这可能有点误导,因此让我们获取POSIX定义,该定义也在该线程的帖子中被引用: ?扩展到最新管道的小数退出状态(请参见管道)。 因此,它仿佛是一次分配本身算作一个命令(或者说管道部分)以零退出值,但其应用之前分配的右侧(例如,在我的例子命令替换调用这里)。 我从实际的角度看这种行为是有道理的,但对我而言,分配本身按该顺序进行计数似乎有点不寻常。也许要弄清楚为什么对我来说很奇怪,让我们假设赋值是一个函数: ASSIGNMENT( VARIABLE, VALUE ) 那foo="bar"会是 ASSIGNMENT( "foo", "bar" ) 并且foo=$(false)会像 ASSIGNMENT( "foo", EXECUTE( "false" ) ) 这意味着先EXECUTE运行,然后才运行,但这仍然是重要的状态。 ASSIGNMENTEXECUTE 我的评估是否正确,或者我误会/遗漏了什么?这些是我将这种行为视为“奇怪”的正确原因吗?

2
案例陈述之外的变量分配
在许多语言中,可以将case / switch语句的结果分配给变量,而不是在case语句中多次重复变量分配。是否可以在Bash shell中执行类似的操作? color_code=$(case "$COLOR" in (red) 1;; (yellow) 2;; (green) 3;; (blue) 4;; esac) (或者,顺便说一句,在其他任何外壳中?)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.