나는 모든 곳을 보았습니다. 에코 및 인쇄를 시도했습니다. 작은따옴표와 큰따옴표를 사용해 보았습니다. 하지만 데이터를 구문 분석하여 변수에 할당한 다음 변수가 포함되어 있는지 평가하고 싶습니다. 그런 다음 변수를 와일드카드로 바꾸고 파일을 검색하겠습니다.
예:
var="file.$DATE.txt"
### Where it goes wrong- Needs to identify that $DATE is within the $var varaible.
test=$(echo "$var"|grep '\$')
if [[ $test ]]
then
### I would use whatever fix is discovered here as well
test=$(echo $test|sed 's/\$[a-zA-Z]*/\*/')
fi
### (Actually pulling from remote machine to local)
cat $test > /tmp/temporary.file
이것은 나의 많은 실패 중 적어도 하나입니다.
PROMPT> file=blah.$DATE
PROMPT> test=$(echo "$file"|grep '\$')
PROMPT> echo $test
PROMPT>
PROMPT>
이것이 확장과 관련이 있다는 것을 알고 있지만 수정하는 방법을 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사해요!
답변1
$date
변수 var 내부에 필요한 경우 :
var='file.$date.txt'
이렇게 하면 변수 내부에 $가 유지됩니다.
$ echo "$var" | grep '\$'
file.$date.txt
답변2
쉘 확장을 방지하려면 변수 주위에 작은따옴표를 사용하십시오. 예제는 echo '$file'
확장되지 않습니다 $file
.
댓글을 단 후 수정됨:
$
int var
변수 에 이스케이프 기호를 사용할 수 있습니다 var="file.\$DATE.txt"
.