linux - 通过取消设置禁用功能

标签 linux bash shell ksh

在我的 bash 脚本中,我多次使用 FuncGenrator 函数。为了禁用/删除该功能,我执行以下操作:

unset  FuncGenrator

unset 命令禁用了我脚本中的所有功能。 主要问题是当脚本运行时,每个函数都会返回未找到命令 错误。例如,脚本 unset_test.bash:

#!/bin/bash

FuncGenrator () {
    echo " I AM REAL FUNCTION BUT NEED TO UNSET LATTER "
}


FuncGenrator
unset FuncGenrator
# run again the function  
FuncGenrator

当我运行这个脚本时,我得到了输出:

I AM REAL FUNCTION BUT NEED TO UNSET LATTER 
./unset_test.bash: line 23: FuncTest: command not found

是否可以添加智能方式来阻止/禁用消息command not found,或者可以将函数 FuncGenrator 设置为 no do nothing?

到目前为止,我的解决方案是按如下方式附加 2>/dev/null:

FuncGenrator 2>/dev/null

但是我觉得很丑。

最佳答案

而不是取消设置功能;使用什么都不做的命令重置它:

function FuncGenrator { :; }

或者

FuncGenrator() { :; }

关于linux - 通过取消设置禁用功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24057327/

相关文章:

c++ - C++ 的函数正则表达式在 linux(CentOS) 中遇到错误,但在 OSX 中遇到错误

java - 通过监听器或 Web 服务传递数据的正确机制是什么

bash - 使用 Mac OSX "open"命令打开带有 -n 标志的 URL

linux - 使用 scp 命令将特定文件从服务器复制到本地计算机 (Linux)

linux - X 服务器触发(minval > maxval)

linux - 检测参数的数量和传递给 bash 的值

shell - 使用 Cron 删除超过 30 分钟的文件夹

c - 如何让 bash shell 脚本在 C 中执行?

linux - 如何记录 shell 脚本的输出并显示在屏幕上?

java.lang.NoSuchFieldError : STANDARD_IMPORTS