是否可以在我的bash脚本文件中定义自己的退出函数。
示例:
$] vi myBash.sh
#!/usr/bash
function myFunc()
{
echo "Inside myFunc"
}
function exit()
{
echo "My Own Exit Called"
exit 0
}
myFunc
exit 0
$] sh myBash.sh
Inside myFunc
My Own Exit Called
$]
答案 0 :(得分:3)
为EXIT(0)设置陷阱:
trap exit_function_name EXIT
或者
trap 'exit command' EXIT
参考文献:
退出[n]
导致shell退出状态为n。如果省略n,则退出 status是最后执行的命令的状态。 EXIT上的陷阱是 在shell终止之前执行。
陷阱[-lp] [[arg] sigspec ...]
shell接收时将读取并执行命令arg 信号sigspec。如果没有arg(并且只有一个sigspec) 或 - ,每个指定的信号被重置为其原始处置( 它进入壳体时的价值)。如果arg是空字符串 shell和by忽略每个sigspec指定的信号 它调用的命令。如果arg不存在且-p已经存在 提供,然后与每个sigspec关联的陷阱命令是dis- 播放。
如果sigspec是EXIT(0),则命令arg在退出时执行 外壳
至于你的代码,它可以这样做:
#!/bin/bash
function exit()
{
echo "My Own Exit Called"
# exit 0
}
trap exit EXIT
不要再退出,因为它会触发陷阱并再次调用该函数。
创建自定义功能时,使用builtin
来调用真实的exit
:
function exit {
echo "My Own Exit Called"
builtin exit 0 ## I think what you really wanted is builtin exit "$1"
}
这是一个建议,所以你可以传递自己的退出消息并退出代码:
function exit {
echo "$1"
builtin exit "$2"
}
exit "My own exit called." 0