バックグラウンド:
「監視」プログラムにアクセスできないため、設定された間隔でコマンドを実行する関数を作成しようとしています。最も基本的なものに簡略化すると、私が書こうとしている関数はrunit() { $1; }
.
機能するもの:
エイリアスではないものを渡すと、これはうまく機能します。たとえば、正常にrunit "ls -l"
動作します。コマンドから完全な出力を取得しますls -l
。
機能しないもの:
問題は、エイリアスを渡すと始まります。たとえば、設定してalias ll="ls -l"
から呼び出すrunit "ll"
と、 になり-bash: ll: command not found
ます。
私が試したこと:
alias をハードコードするrunit() { ll; }
と、正常に動作し、期待どおりの結果が得られます。
何かを見落としているような気がしますが、指を置くことはできません。
エイリアスをハードコーディングすると問題なく動作するのに、関数に渡すと失敗するのはなぜですか?
私がやろうとしていることを達成する方法はありますか?