我必须避免在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
的想法工作正常,但在这一点上,我不知道如何避免上述命令的执行。
不知道如何解决这个问题?
请记住,'source'是shell内建的,不像大多数其他命令。然而,有趣的问题。 –
我的评论可能很愚蠢,但既然你可以改变脚本,为什么不直接评论这些命令并保存?或者这些命令来自用户输入?你可以通过正则表达式来检查它们。或者我不明白你的要求? – Kent
@Kent矿只是一个简单的例子。我需要的是在某些可能发生或不可能发生的情况下阻止某个命令的执行。 –