加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 是否可以避免执行某个命令?

发布时间:2020-12-15 16:59:16 所属栏目:安全 来源:网络整理
导读:我必须避免在bash脚本中执行某个命令. 我想用一个preexec陷阱来做到这一点. 假设我想避免命令’source’仅用于axample. 我做的基本上是以下几点: #!/bin/bashfunction preexec (){ if test $( echo "$BASH_COMMAND" | cut -d " " -f1 ) == "source" then ec
我必须避免在bash脚本中执行某个命令.
我想用一个preexec陷阱来做到这一点.

假设我想避免命令’source’仅用于axample.
我做的基本上是以下几点:

#!/bin/bash

function preexec ()
{
    if test $( echo "$BASH_COMMAND" | cut -d " " -f1 ) == "source"
        then
            echo ">>> do not execute this"
        else
            echo ">>> execute this"

    fi
}
trap 'preexec' DEBUG

echo "start"
source "source.sh"
echo "go on"

exit 0

这个想法很好,但此时我不知道如何避免执行所述命令.
不知道怎么解决这个问题?

一种解决方法是为该命令定义一个别名,该命令不执行任何操作,并在脚本完成后取消定义.必须在脚本本身内声明别名才能使其工作:
alias source=:
## The actual script source here...
unalias source

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读