2011-01-26 3 views
4

파일 이름 변수에 데이터를 출력하는 간단한 테스트 프로그램을 작성했습니다. 쉘 스크립트에서 파일 이름 변수로 출력 할 때 오류가 발생했습니다.

#!/bin/sh 
file="~/output" 
echo "test" > $file 

나는이 스크립트를 실행

, 나는 다음과 같은 오류를

"./script.sh을 ~/출력 : : : 3 호선 해당 파일 또는 디렉터리"가지고 그래서

어떻게해야 작동하도록 코드를 수정 하시겠습니까? 또는 쉘 스크립트에서 지원되지 않습니까?

답변

5

은 "~/출력"주위에 따옴표 당신에게 슬픔의 원인이된다.

예컨대 작품을 좋아

#!/bin/sh 
file=~/output 
echo "test" > $file 
.

시도, 무슨 일이 일어나고 있는지 확인하려면

$ file="~/output" 
$ echo $file 

~ 홈 디렉토리에 대한 쉘 확장을 염두에

$ file=~/output 
$ echo $file 

대.

1

대신 스크립트에서 $ HOME 환경 변수를 사용할 수 있습니다

#!/bin/sh 
file="$HOME/output" 
echo "test" > $file 
관련 문제