在shell脚本中输出到文件名变量时出错

时间:2011-01-26 21:51:47

标签: unix scripting

我写了一个非常简单的程序来测试输出数据到文件名变量。

#!/bin/sh
file="~/output"
echo "test" > $file

当我运行此脚本时,出现以下错误

“./ script.sh:第3行:〜/ output:没有这样的文件或目录”

那么我应该如何修改我的代码才能使其正常工作?或者shell脚本不支持它?

2 个答案:

答案 0 :(得分:5)

“〜/ output”周围的引号让你感到悲伤。

e.g

#!/bin/sh
file=~/output
echo "test" > $file

工作正常。

要查看正在发生的事情,请尝试

$ file="~/output"
$ echo $file

VS

$ file=~/output
$ echo $file

请记住〜是主目录的shell扩展。

答案 1 :(得分:1)

您可以在脚本中使用$ HOME环境变量:

#!/bin/sh
file="$HOME/output"
echo "test" > $file