user@sv7280:~$ return
bash: return: can only `return' from a function or sourced script
user@sv7280:~$ { return }
>
>
这是怎么回事,这里的提示是什么意思,{ return }
带我去哪里?
user@sv7280:~$ return
bash: return: can only `return' from a function or sourced script
user@sv7280:~$ { return }
>
>
这是怎么回事,这里的提示是什么意思,{ return }
带我去哪里?
>
是$PS2
shell 发出的提示,告诉您命令未完成,需要您提供更多输入才能完成。在 bash 中,如果你这样做:
你会看到它的输出
}
。{
是启动命令组的关键字。是
{
我们的echo }
from 上面的关键字,shell 等待结束}
关键字才能开始运行它。该
}
关键字必须与前面的命令分开,用;
, 换行符(或&
, 甚至{(echo)}
...之类的东西)。无论是 the
echo
还是return
builtin,从语法的角度来看,都没有区别。所以你需要:但是,这
return
不是从函数中调用的,所以你仍然会得到那个错误。要定义一个函数,在 Bourne-like shells 中,你仍然
funcname()
在一个命令前面。在 的情况下bash
,命令只能是复合命令,例如(subshell)
,{ command group; }
,for ...; do ...; done
...。所以,你需要:
或者:
除了函数之外,
return
还可以从源脚本中调用,因此如果您希望能够从一组命令返回而无需定义函数,您可以执行以下操作:或者您可以使用子外壳并使用
exit
代替return
:(当然,命令在子shell环境中运行)
在
zsh
中,您还可以使用匿名函数: