我试图在 tcsh 中声明一个函数并调用它。
#! /bin/tcsh -f
helloWorld () {
echo "a"
}
helloWorld
我收到以下错误:
< 512 mews2895 ~/tmp/script> 1.sh
Badly placed ()'s.
有没有人在这里可能是什么问题?
谢谢
tcsh 不支持函数。
最佳解决方案:使用可以执行此操作的 shell,例如 bash。
如果出于某种原因必须使用 tcsh,别名将解决您的直接问题,但比函数弱得多。
alias helloWorld 'echo "a"'
另一种可能的解决方案是调用单独的脚本。(您必须确保调用的脚本在您的$PATH
.)
tcsh 中没有函数。所以我看到了 2 个选项:
使用别名: https ://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxa500/alias.htm
使用goto。(人们倾向于批评 go-to,但这实际上取决于上下文)。
还有一个选项,如果你想用多个文件组织你的代码,请使用source :
要在当前环境中运行 shell 脚本而不创建新进程,请使用 source 命令。你可以这样运行计算 shell 脚本: source calculate 如果你想使用一个 shell 脚本来更新当前环境中的一个变量,使用 source 命令运行它。
src:OS/390 UNIX 系统服务 tcsh(C Shell)工具包支持指南 - IBM
我认为“使用不同的外壳”不应该是一个有效的回应。
问候,巴勃罗
尝试下面的代码以了解函数的用法tcsh
#! /bin/tcsh -f
goto helloWorld
helloWorld:
echo "a"