私はbashスクリプトで特定のコマンドの実行を避けなければなりません。
私はそうするためにpreexecトラップを使うと考えました。特定のコマンドの実行を避けることは可能ですか?
私は 'ax'コマンドを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
アイデアが正常に動作しますが、この時点で私が言ったコマンドの実行を回避する方法を知りません。
これを解決する方法はありますか?
「ソース」は他のほとんどのコマンドとは異なり、シェルの組み込みであることに注意してください。それにもかかわらず興味深い質問。 –
私のコメントは愚かかもしれませんが、スクリプトを変更できるので、これらのコマンドをコメントアウトして保存してみませんか?またはコマンドはユーザーの入力から来ていますか?あなたは正規表現でそれらをチェックすることができます。または私はあなたの要件を理解していない? – Kent
@Kentの鉱山は単なる簡単な例です。私が必要とするのは、発生する可能性のある特定の条件の下で特定のコマンドの実行を防ぐことです。 –