echo -n "##### STATIONS? #######"
read station
text="stab_site "
$text$station
텍스트 파일의 27번째 줄 에 echo를 써야 합니다 . 다음 명령을 사용했지만 작동하지 않습니다.
sed -i "27i\$text$station" text.data
결과적으로 $textankr ista
"text" 변수는 sed 함수 내에 전달될 수 없습니다.
답변1
이는 쉘이 이를 \$
문자 그대로(이스케이프된) 달러 기호로 해석하기 때문입니다. 노력하다
sed -i "27i\\$text$station" text.data
또는 작은따옴표와 큰따옴표를 혼합하세요.
sed -i '27i\'"$text$station" text.data
또는 리터럴 줄 바꿈을 사용하십시오.
sed -i "27i\
$text$station" text.data
(내 생각에는 이것이 POSIX가 더 정확하다고 생각합니다).
답변2
아마도 문제는 빈 출력 파일일 수 있습니다. 예: #!/bin/bash
CAMINHO='/etc/scripts/dropbox.log'
RESULTADO=`date +%d/%m/%Y | tr '\n' ' '; dropbox status;`
sed -i "1i\
$RESULTADO" /etc/scripts/dropbox.log
이 스크립트는 빈 파일 dropbox.log에 쓸 수 없습니다.
파일에 일부 텍스트를 쓰고 스크립트를 다시 실행하십시오.