2012-03-30 17 views
6

Bir değişkene bir kesme komutunun çıkışını atamaya çalışıyorum, ancak garip bir sorunla karşılaşıyorum. Tcsh kabuk kullanıyorum. Bir kabuk değişkenine komut çıktısı atama

$echo $0 
tcsh 

Bu

ben çalıştırıyorum komut şöyledir: (. Kuyu bu üzerinde çalıştığım değil dosyasıdır ama bu sorunu azaltılmış)

$set a=`cut -f2 -d' ' test.txt` 
Missing }. //This is the output I am getting 

Şimdi dosya gerçek basittir

Test.txt-: bu

{ {corner 

Thats! Bu dosya. Bunun için dosyayı değiştirirseniz:

{ {corner} 

Beyanı eserler ancak "bir" Aşağıdaki değerini alır: Dolayısıyla

$echo $a 
corner //Please note its not {corner} but corner 

O kabuk komut olarak ve yana {corner yürütmeye çalışıyor düşünüyorum onun Kapanış ayracı kabuğunun eksik olması şikayette bulunur. Bu davranışı neden gösterdiği konusunda bir fikri olan var mı? Anlayışım, kesimin çıkışını sadece değişkene ataması, ancak tekrarlı olarak ataması gibi görünmesidir! Çaylak

cevap

5

Sen

set a="`cut -f2 -d' ' test.txt`" 

aynı çift tırnak etrafına sarın zorunda böyle echo

echo "$a" 

Çıktı olarak kullanımları için de geçerlidir olarak çalışmayacaktır

{corner 
+0

OP bunu amaçlamaktadır. Bu sadece "Missing}" a atar. – Ketan

+0

Hayır, bu işe yarıyor! echo "a a" değil echo $ a deneyin. Ama bunu neden yapmamız gerektiği konusunda kafam karıştı mı? – Richeek

+0

Benim hatam. $ A eklerken çift tırnakları kaçırdım. – Ketan