我必须避免在bash脚本中执行某个命令.
我想用一个preexec陷阱来做到这一点.
我想用一个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