実行されたコマンドを確認する方法は?


9

私はと呼ばれるシェルスクリプト持ちfoo.shでを/usr/local/sbin。さらに、同じ名前の別のスクリプトを使用しています。に保存されてい/home/user/scriptsます。

両方のパスがに属していPATHます。foo.shコマンドラインで入力したときに実行されるスクリプトを確認するにはどうすればよいですか。影響を与えることはできますか?

回答:


10

数日前、自分の答えに満足しました。またwhich、コマンドが存在するかどうかをテストするためにコマンドが使用されないことも知っていました。今、私は自分の答えにあまり満足していません。この素晴らしい反応を参考にしています。


簡単なwhichコマンドで:

which foo.sh

またはtypeコマンド:

type foo.sh

そして$PATH、スクリプトの開始時にEG 内のパスの順序または絶対パスを介してこれに影響を与えることができます。

/home/user/scripts/foo.sh

PATHが次のように定義されている場合

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

そして、内外にあるスクリプトまたは何か他のものを開始/usr/local/bin/usr/bin、そのスクリプトを/usr/local/binより高い優先度で入力します。


1
いえばbashzshもありますtypeビルトイン。代わりにzsh which、とは異なりbash、組み込みです(ではなく/usr/bin/which
kos


@muruありがとう。もう少し知っていましたが、それほど詳しくはありませんでした。自分の意見に回答を追加しました。再度、感謝します。
AB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.