我必須避免在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礦只是一個簡單的例子。我需要的是在某些可能發生或不可能發生的情況下阻止某個命令的執行。 –