Shell编程中为什么会出现这个问题
#!/bin/sh hello="Kai shi" echo $hello function getword{ local hello="Kai shi 2" echo $hello } testword(){ local hello="Kai shi 3" echo $hello } getword testword echo $hello echo "This is ${hello}"
错误如下:命令./ts1
Kai shi
./ts1: 5: ./ts1: function: not found
./ts1: 6: local: not in a function
是什么原因呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(14)
第1行是#!/bin/bash,因为这是bash语法,bash和sh是不同的,或者用命令"bash ts1"运行
第5行,getword后面要有括号或空格
然后运行就可以了
就是缺少空格...
回复
先贴出你改后的代码吧...
但是好像还是会报错。不知道是为什么?
没错,你是正确,就是缺少空格,最好要用Tab来加空格。
修改之后的代码如下,基本上没有什么特别的变化,只是错误提示有点变化了。
换行,tab也行。有圆括号的不需要。
花括号前必须有个空格
花括号换行写
但是好像这种语法也是被允许的呀?
而且问题是还能够执行第一个函数。
有点语法问题,function getword 后面少了括号,testwork 前面少了 function ,应该与路径无关。
绝对路径怎么做呢?
给绝对路径试试