我有一个简单的shell脚本,如下所示:
myfunc()
{
#print hello world
echo "Hello World";
}
myfunc当我在linux上执行时,这个脚本运行得很好,但是当我在uclinux中运行同样的脚本时,我得到的错误是“语法错误”。问题的原因可能是什么?
更新:
下面的代码可以在uclinux中运行:
####\#!/bin/sh
echo "Hello World"但是,以下代码不起作用:
####!/bin/sh
myfunc()
{
#print hello world
echo "Hello World";
}
myfunc发布于 2010-10-13 16:39:08
结果取决于您运行的shell。大多数uclinux的shell实际上都是指向Busybox的符号链接。Busybox为不同的内存占用需求实现了各种微型shell。据我所知,只有ash支持函数语法。检查busybox版本及其构建配置。
发布于 2010-01-07 21:05:14
也许你安装的uclinux使用了不同的shell?
说"shell脚本不工作“就像说”我的源代码不工作“。当然,只有当你说出你的源代码所用的语言时,这个短语才有意义。shell脚本也是如此:它是bash吗?是ksh吗?是tcsh吗?对于uclinux,我非常怀疑它是busybox。
发布于 2010-01-07 21:35:13
您的shell脚本应该有一个shebang行,它将使脚本由您指定的shell执行。这可以减少或消除许多意外错误,这些错误是由于当前(或默认) shell执行脚本时shell之间的语法差异造成的,这些shell可能由于多种原因而不同。
脚本文件的第一行应类似于:
#!/bin/sh使用适合您需要的shell的路径和名称。
https://stackoverflow.com/questions/2020403
复制相似问题