我正在 .sh 脚本中尝试以下形式:
echo 'string' $var >> print.dat
它打印以下内容:
'string' 14.27
这几乎是我想要的,但我需要引号消失。我所需要的只是:
string 14.27
有人知道这里的解决方案吗?我确信这是一个简单的问题,但我四处搜索,但找不到我想要的东西。也许我只是不知道到底要搜索什么。
编辑:
我感谢你们的帮助,但不愿意承认,但我一直在犯一个非常愚蠢的错误。在 print.dat 中,事情一直按照我想要的方式打印,但我使用 sh -x 来查看输出,因此我看到了字符串周围的引号。
答案1
echo 'string' $var >print.dat
这不会显示任何内容,而是string
将后面的值$var
(可能会经历一些转换,因为没有引用)写入文件print.dat
。字符串周围的引号将被删除。
确保您没有echo
给任何东西起别名。要绕过任何具有相同名称的别名或 shell 函数,请使用
command echo 'string' $var >print.dat
或使用/bin/echo
代替echo
.
您还可以使用printf
通常比以下更便携的方法echo
:
printf 'string %s\n' "$var" >print.dat
答案2
此解决方法可以完成这项工作(根据您的 shell 反斜杠反引号 `):
echo 'string' $var | tr -d \' >> print.dat