2012-03-30 4 views
6

변수에 컷 명령의 출력을 지정하려하지만 이상한 문제가 발생합니다. tcsh 쉘을 사용하고 있습니다. 셸 변수에 명령 출력 할당

$echo $0 
tcsh 

내가 실행하고있는 명령입니다. (물론 이것이 내가 작업 한 파일이 아닌는하지만이에 문제를 감소)

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

이제 파일이 진짜 간단한입니다

TEST.TXT : 그것은

{ {corner 

그게 전부! 이 파일입니다. 나는이에 파일을 변경하는 경우 :

{ {corner} 

문 작동을하지만, "a"는 다음과 같은 값을 가져옵니다 : 따라서

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

그 쉘 명령으로하고 있기 때문에 {corner 를 실행하려고 생각의 닫는 중괄호 셸이 누락되었습니다. 누구든지 왜이 행동을 보여주는 어떤 생각을 가지고 있습니까? 내 이해 그냥 변수의 잘라 내기 출력을 할당해야하지만 재귀 적으로 그것을 할당처럼 보이는! 신참

답변

5

당신은

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

같은 큰 따옴표 주위를 포장 할 필요는 echo

echo "$a" 

출력 등의 용도에 적용이 작동하지 않습니다

{corner 
+0

OP는 그것을 의도합니다. 그러면 "Missing}"이 a에 할당됩니다. – Ketan

+0

이것은 작동하지 않습니다! echo "$ a"echo $ a를 시도하십시오. 그러나 나는 왜 이것을해야만하는지 혼란 스럽다. – Richeek

+0

실례합니다. 나는 $ a를 울릴 때 큰 따옴표를 놓쳤습니다. – Ketan