现在我得到一个script.sh
,以前它是使用PuTTY执行的,前提是它是在VMWare中编写的,但现在我想在Windows中使用Cygwin执行,我已经将其复制script.sh
到相应的目录,但有些命令Cygwin无法识别。
generate(){
date +%T
}
TIME = generate()
echo " Current Time: $TIME"
在Cygwin中执行后
script.sh: line 3: syntax errot neat unexpected token '$'<\r''
script.sh: line 3:'generate<><
答案1
您的脚本中有几个错误。在赋值时,等号周围不能有空格。为了将函数或程序的输出分配给变量,您必须使用命令替换,这意味着命令名称被括起来$()
(这是可取的)或反引号(不太可取)。此外,当您调用函数时,您不会像在其他语言中那样在函数名称后使用括号。
generate () {
date +%T
}
TIME=$(generate)
echo " Current Time: $TIME"
错误$'\r'
是由于 Windows 行尾错误造成的。您可以使用dos2unix
来转换文件,或者使用可以选择使用哪种类型的行尾来保存文件的编辑器。
dos2unix script.sh