【发布时间】:2013-08-02 17:43:45
【问题描述】:
我有这个
var1='hello'
var2='world'
我需要一个变量中的helloworld。如果我写
print $var1$var2 # prints "helloworld"
但是当我写的时候
var3=$var1$var2 # var3 is not "helloworld"
我试过了
var3=$(print $var1$var2)
var3='$var1$var2'
确定我唯一没有尝试过的是好的,但是哪一个?
发现奇怪的东西后编辑:
如果我完全按照我写的那样做
var3=$var1$var2
print $var3 # prints "helloworld"
但实际上我写这个是为了恢复我对其他变量的问题,我自己的变量。不同之处在于$var1 是awk 命令从文件中提取此文本的结果。
我试着解释一下:
myvar1我真正使用的变量是这样的:
myvar1=awk -F"/" '${print $1}' $dir_path
不是这样的
myvar1=world
那只是问你这个问题。我不知道为什么,但这似乎很重要。
如果我对变量执行与 var3=$var1$var2 相同的操作,它不会起作用。为了用我的变量获得正确的结果,我刚刚发现我必须使用:
myvar3=echo$myvar1$myvar2
print $myvar3 # gives the right result.
另一方面,如果我这样做了
var3=echo$var1$var2
print $var3 # prints "echohelloworld"
如何解释?
我使用的是 Mac OS X、命令行终端和 Zsh。
【问题讨论】:
-
没人回答吗?
-
欢迎来到stackoverflow。您最初的主张很可能是错误的。请单击编辑链接并相应地更新/删除它。此外,我不明白
awk部分,您能验证一下吗? -
我编辑了我的问题,以准确说明我对 awk 部分的意思。让我知道我是否足够清楚
标签: macos variables terminal zsh concat