shell脚本中未附加到文件的字符串

shell脚本中未附加到文件的字符串,shell,Shell,我正在尝试一个简单的shell程序,如下所示,在文件末尾添加数据 path="/root/dir" secure="*(rw,..)" echo "$path $secure" >> a.txt 不是将字符串附加到a.txt,只是猜测,但您的脚本可能是DOS格式的,您实际上是在尝试将输出写入a.txt\r。请尝试对代码运行以下操作之一,然后重试: sed -i 's|\r||' file dos2unix file 它是否没有在a.txt中添加任何内容?你能显示ls-la.txt

我正在尝试一个简单的shell程序,如下所示,在文件末尾添加数据

path="/root/dir"
secure="*(rw,..)"
echo "$path $secure" >> a.txt

不是将字符串附加到a.txt,只是猜测,但您的脚本可能是DOS格式的,您实际上是在尝试将输出写入a.txt\r。请尝试对代码运行以下操作之一,然后重试:

sed -i 's|\r||' file
dos2unix file

它是否没有在
a.txt
中添加任何内容?你能显示
ls-la.txt
的输出吗?-rw-r--r--1根根根目录25 Aug 4 07:44 a.txtcat a.txt adasdassd adasdashmm好的,
echo“$path”>>a.txt
会不会是
*
出了问题?如果您试图用一些不包含星号的内容设置
安全性
,该怎么办?在bash中,
*
被展开。您还可以尝试
secure='*(rw,…)
(单引号),这样它就不会展开。