2013-08-02 3 views
0

Я этоПоместите результат печати в переменной или Concat текстовой переменной

var1='hello' 
var2='world' 

мне нужно helloworld в переменной. Если я пишу

print $var1$var2    # prints "helloworld" 

Но когда я пишу

var3=$var1$var2    # var3 is not "helloworld" 

Я попытался

var3=$(print $var1$var2) 
var3='$var1$var2' 

Конечно только один я не пытался это хороший, но какой?

Edit после открытия любопытной вещи:

Если я точно так, как я написал

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.

+0

Никто не может ответить? – user2643105

+0

Добро пожаловать в stackoverflow. Ваше первоначальное требование, скорее всего, неверно. Нажмите на ссылку для редактирования и обновите ее соответствующим образом. Кроме того, я не понял часть 'awk', можете ли вы подтвердить ее? –

+0

Я отредактировал свой вопрос, чтобы уточнить, что я имею в виду о части awk. Дайте мне знать, если я достаточно ясен – user2643105

ответ

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 
+0

Вы правы, я редактировал это: awk -F "/" '$ {Print $ 1}' $ dir_path – user2643105

+0

Проблема заключается в печати $ var3 работает хорошо (с var1), но print $ myvar3 не делает (потому что myvar1 кажется другим) – user2643105

+0

Что такое вывод 'set | grep myvar1'? –

Смежные вопросы