system lessの代わりにhomebrew lessを使用するにはどうすればよいですか?


4

less経由でインストールしました

homebrew install less

ただしlesslesshomebrewでインストールされたものではなく、システムバージョンを起動します。which lessショー:

$ which -a less
/usr/local/bin/less
/usr/bin/less

where /usr/local/bin/less../Cellar/less/487/bin/less(homebrew less)へのシンボリックリンクで/usr/bin/less あり、system lessです。echo $LESS何も返しません。デフォルトlessではシステムの代わりにhomebrewを起動するにはどうすればよいlessですか?


なぜあなたはしたいのですか?
猫のセイウチ

1
@OSの@WalrustheCatはless2013年、具体的にはバージョン458です。現在のHomebrewバージョンは487です。バージョン間でいくつかの機能強化が行われ、バグが修正されています。
シャドウトーカー

@ ssdecontrol正確に。@WalrustheCatなぜ私がしたいのかは本当に重要ではありませんか?ただし、システムをあまり交換しなくても望ましくない副作用があると思われる場合は、ご意見をお聞かせください。
Cpt_Jauchefuerst

@Cpt_Jauchefuerstちょうど好奇心man盛なマング
猫のセイウチ

この質問/回答は、たとえばnano
Cpt_Jauchefuerst

回答:


12

これは、PATHまだ古い値を使用しているコマンドのbashのハッシュテーブルによる可能性があります。のハッシュを削除するか、ハッシュをlessクリアして、bashが再検索するようにしますPATH

hash -d less
# or, hash -r

テーブルにパスを手動で追加することもできます。

hash -p /usr/local/bin/less less

Bashマニュアルから(強調鉱山):

名前がシェル関数でも組み込み関数でもなく、スラッシュが含まれていない場合、Bashは各要素で$PATH、その名前の実行可能ファイルを含むディレクトリを検索します。bashは、複数のを避けるために、実行可能ファイルのフルパス名を覚えておくことは、ハッシュテーブルを使用してPATH 検索を(の説明を参照hashのBourneシェル組み込み関数を)。ディレクトリ内の全検索は、$PATHコマンドがハッシュテーブルで見つからない場合にのみ実行されます。


魅力のように働いた。$hash -d lessもたらした-bash: hash: less: not foundが、$hash -r仕事をしてくれました。
Cpt_Jauchefuerst

3

homebrewが正しくインストールされている場合は、/usr/local/bin/前にチェックされます/usr/bin/。これをecho $PATHで確認すると、OSが入力したコマンドを見つけようとしているパスが表示され、表示されている順序でそれらが試行されます。


bashシェルを使用した少し手の込んだもの

echo $PATH | awk '{ n = split($0, paths, ":"); for (i=0; ++i <= n;) print i, paths[i] }'

魚の殻を使用):

echo $PATH | awk '{ n = split($0, paths, " "); for (i=0; ++i <= n;) print i, paths[i] }'

これにより、試行されたパスの番号付きリストが表示されます。鉱山ショー

1 /Users/peter/.gem/ruby/2.0.0/bin
2 /usr/local/sbin
3 /usr/local/bin
4 /usr/bin
5 /bin
6 /usr/sbin
7 /sbin
8 /Library/TeX/texbin

システムは、上記の順序でコマンドを探してディレクトリを走査しますless。最初のものでない場合は、オプションがなくなるまで次のものを試し、エラーをスローします。

したがって、echo $PATH私のものと同様の結果が表示される場合は、lessの自作バージョンを使用しています。


6
Unixの精神では、1つの仕事を行い、それをうまく行う小さなツール echo $PATH | tr ':' '\n' | nl
fd0

1
それははるかにエレガントです。私は知りませんでしたnl、そしてあなたがハンマーを持っているとき彼らが言うように、すべてが釘のように見えます。
PeterVP

/usr/local/bin確かに前にチェックされている/usr/binので、私がしなければならなかったが、は/ usr / binに/以下はbashのハッシュテーブルにありました$hash -r
Cpt_Jauchefuerst
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.