echo -n "##### STATIONS? #######"
read station
text="stab_site "
我需要将 echo 写入$text$station
文本文件的第 27 行。我使用了下面的命令,但它不起作用,
sed -i "27i\$text$station" text.data
它产生;$textankr ista
“text”变量不能在 sed 函数内传递。
答案1
这是因为您的 shell 正在将其解释\$
为字面(转义)美元符号。尝试
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。
在文件中写入一些文本并再次执行脚本。