2012-03-13 3 views
0

셸 스크립트에서 명령 대체를 방지 할 수있는 방법이 있습니까? 나는 에코 foo``얻을 수있는 방법을 싶습니다셸 명령 대체 방지

var=`echo foo` 

: 스크립트가 같은 라인이 포함 된 경우 예를 들어

. foo 인 명령 대신에.

편집 : 나중에 평가를 위해 이러한 명령을 저장하려고합니다. 게다가 스크립트를 수동으로 편집 할 수 없습니다. 나는이 값들을 C/C++ 프로그램에서 필요로한다. 그런 식으로 필자는 목적을 죽이는 스크립트를 어떻게 든 파싱해야한다.

# 2 편집 : 전체 상황이 여기에 설명 :

foo="bar" 
baz=`some_command` 

등 난의 오른쪽 부분을 저장하는 모든 변수에 대해 원하는이 같은 변수들을 잔뜩 포함이 쉘 스크립트가 expression (즉, "bar"및 "some_command"). C/C++ 프로그램 내에서이 작업을 수행해야하므로 스크립트를 수동으로 편집 할 수 없습니다 (예 : 작은 따옴표 추가).

+0

무엇을하려하십니까? 'eval'을위한 문자열을 "보안"하고 싶다면, 그렇게 간단하지는 않습니다 (http://mywiki.wooledge.org/BashFAQ/048). – l0b0

+0

스크립트를 구문 분석하는지 여부 'var = \'echo foo \''에서'\'echo foo \''를 얻고 싶습니다. C/C++ 구문이 아닌 쉘 구문과 매우 유사합니다. 쉘에서 실행해야하는 C/C++ 프로그램에서 사용자가 입력하는 명령입니까? – l0b0

+0

@ l0b0 : ** ** 스크립트를 구문 분석하고 싶지 않습니다. 길고 고통 스럽습니다. 그래서, 쉘을 다른 프로세스로 스폰하고 스크립트로 그 내용을 처리 할 생각이었습니다. 따라서, 나는 쉘 syntax/magic을 찾고있다. 스크립트를 직접 편집 할 수 없다는 것을 나타 내기 위해 C/C++ 프로그램을 언급했습니다. –

답변

1

문자열을 작은 따옴표로 묶어야합니다.

var='`echo foo`' 
+0

이 스크립트를 직접 편집 할 수는 없습니다. C/C++ 프로그램에서이 값을 얻으 려하므로 작은 따옴표를 넣을 위치를 찾기 위해 스크립트를 구문 분석해야합니다. 이는 피하고 싶었던 것입니다. –