
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 に書き込めません。
ファイルにいくつかのテキストを書き、スクリプトを再実行します。