0

私はこれを持っています

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 を使用しています。

4

1 に答える 1

0

あなたが持っている場合

var1='hello'
var2='world'

これらのいずれかが発生しますprint $var3 # prints "helloworld"

var3="$var1$var2"
var4=$var1$var2
var5=$(print $var1$var2)

最初のものを使用する必要があります。変数を出力するか、次のように呼び出すことで確認できますset

$ print var3                                # prints "helloworld"

$ set|grep var
var1=hello
var2=world
var3=helloworld
var4=helloworld
var5=helloworld

あなたの編集は、あなたが使用することを言います: myvar1=awk -F"/" '{print $1} $dir_path. この行には次のものがありません$():

myvar1=$(awk 'BEGIN { print "hello" }')
echo $myvar1                                # prints hello
于 2013-08-03T16:27:58.853 に答える