2011-10-13 1 views
1

이상한 문제가 있습니다. 파일의 응답을 다른 파일에 에코하려고합니다. 예를 들어 다음과 같이 사용하고 싶습니다.파일에 별표를 반향 출력 함

# run_location=`find -name 'program.exe'` 
# echo $run_location>storagefile.txt 

그래서 내 프로그램을 나중에 사용할 수 있도록 저장할 수 있습니다. 그러나 이제는 프로그램의 출력물을 가져 와서 저장하려고하는 문제가 있습니다. 유일한 문제는 출력에 별표 (*)가 많이 포함되어 있고, 에코가 * 내 디렉토리에있는 모든 파일 이름을 에코하여 엉망인 파일을 생성한다는 것입니다.

파일의 출력은 다음과 같습니다

# ./device -FD 
******************************* 
* Firmware   : 1.0034 * 
* Date    : 011209 * 
******************************* 

그리고 내가 파일 상세 저장할 것인지,이 주변에 어떤 방법은 무엇입니까? 출력을 파일로 저장하는 다른 방법은 없을까요? 별표로 출력하는 것이 가장 좋은 아이디어는 아니지만이 데이터를 다시 얻는 방법을 제어 할 수는 없습니다.

감사합니다.

답변

5

쉘 스크립팅의 중요한 규칙 : 인용문을 적용 할 자유로운 곳. 당신 그래서 예를 들면 : 명령 줄 토큰 이러한 따옴표없이

run_location="`find -name 'program.exe'`" 
echo "$run_location" >storagefile.txt 

, 이러한 해석 얻을 ... 그것은 공간의 존재 여부에 따라 처단 할 것이며, * 같은 패턴이 평가됩니다. 사용자, 파일 또는 프로그램 출력에서 ​​나온 것이라면 인용하십시오.

+0

나머지 명령 행을 구문 분석하기 전에 변수의 내용을 확장하는 쉘이라는 것을 기억하십시오. 그래서 당신은'echo ******* ....'을 끝내게됩니다. –

+0

울타리의 이쪽에 신인이 여전히 많습니다. – Matt

+0

캡쳐중인 출력에 별표가 포함되어 있더라도 첫 번째 줄에는 큰 따옴표가 필요하지 않습니다. 두 번째 줄에 따옴표가 필요합니다. – Idelic