我想在一行中将以下变量设置为相同的值
Example: export A=B=C=20
“bash”中有一种语法,但如何在 ksh 中完成上述操作?
答案 0 :(得分:8)
Ksh93(或bash)没有这样的表达式,所以它更好
使其明确。但是你可以捆绑多个变量
(使用其初始值)在一个export
短语中:
export A=1 B=2 C=3
测试:
$ (export A=1 B=2 C=3 && ksh -c 'echo A=$A B=$B C=$C D=$D')
A=1 B=2 C=3 D=
没有类似C的快捷方式,除非你想要这个丑陋的东西:
A=${B:=${C:=1}}; echo $A $B $C
1 1 1
...不适用于export
,当B或C为空或不存在时也不起作用。
修改强>
Ksh93 算术符号确实实际上支持C风格的链式分配,但由于显而易见的原因,这仅适用于数字,然后您必须执行{ {1}}分开:
export
请注意我们如何导出$ ((a=b=c=d=1234))
$ echo $a $b $c $d
1234 1234 1234 1234
$ export a b d
$ ksh -c 'echo a=$a b=$b c=$c d=$d'
a=1234 b=1234 c= d=d1234
,并且它在子shell中的值确实是空的。
答案 1 :(得分:1)
export a=60 && export b=60 && export c=60
如果你有很多变数,可能不是最好的选择
答案 2 :(得分:1)
以下是我的示例解决方案:
$> export HTTP_PROXY=http://my.company.proxy:8080 && export http_proxy=$HTTP_PROXY https_proxy=$HTTP_PROXY HTTPS_PROXY=$HTTP_PROXY
$> printenv | grep -i proxy
http_proxy=http://my.company.proxy:8080
HTTPS_PROXY=http://my.company.proxy:8080
https_proxy=http://my.company.proxy:8080
HTTP_PROXY=http://my.company.proxy:8080
<强>解释强>
首先,我将HTTP_PROXY
变量设置为export
并执行该命令,并且仅在此之后(&&
注释)将剩余变量设置为与{{1}相同的值}}