我有以下脚本有效:
x=10
echo $x
now=$(date +'%Y-%m-%d')
echo $now
但是,当我在开头添加注释行时:
# comment
x=10
echo $x
now=$(date +'%Y-%m-%d')
echo $now
我得到以下内容:
x=10: command not found
x: undefined variable
为什么添加导致脚本失败的注释?
如果我执行以下操作,则可以使用:
x=10
echo $x
now=$(date +'%Y-%m-%d')
# comment here
echo $now
答案 0 :(得分:6)
这是csh的怪癖。 (停止使用csh!)csh将使用“标准shell”(引自csh联机帮助页)处理不以“#”开头的脚本。当脚本以“#”开头时,csh会对其进行解析。您的脚本无效csh。
你应该添加一个shebang线来避免这种类型的问题。也就是说,制作第一行:
#!/bin/sh
答案 1 :(得分:2)
尝试这样的事情
#!/bin/sh
#
x=10
echo $x
now=$(date +'%Y-%m-%d')
echo $now
这适用于我的系统(Ubuntu 11.04,64bit)。如果这不起作用,那么您的文件中可能会有一些隐藏的特殊字符。