2017-11-08 3 views
1

私は現在、実行時に検索パス内のディレクトリを表示される順序で表示するコマンドをbashスクリプトファイルに書くのが難しいです。bashスクリプトが検索される順番にディレクトリを表示

私は次のことを試してみた:

SEARCH_PATH=$($PATH | tr ':' '\n') 
echo $SEARCH_PATH 

を私は何も

と、それが戻ってきたファイルを実行したら、私もこの試みた:正直に言うと

BASEDIR=$(dirname $0) 
echo $BASEDIR 

を私は上記のコードを他の場所から見つけて、dirnameと混同していました。どのように引数が$0に影響しますか?

ご迷惑をおかけして申し訳ございません。あなたはあなたの最初のコマンドでechoコマンド行方不明

+1

[変数を引用するのを忘れないでください](https://unix.stackexchange.com/q/171346/4667) –

答えて

2

search_path=$(echo "$PATH" | tr ':' '\n') 
echo "$search_path" 

変数を使用する理由は本当にありませんが、あなただけ行うことができます。

echo "$PATH" | tr ':' '\n' 

あなたのコードをしようとしていました実行するコマンドには$PATHの値を使用します。

また、シェル変数には大文字の名前を使用しないでください。これらの名前は環境変数用に予約されています。

+0

何らかの理由でまだ新しい行が印刷されないので、ネットと私は私のシェルスクリプトの先頭に次のように使用していたことを見つけるために、来た:IFS = $ IFS = $ A = $(猫links.txt) $エコー「$」 リンク1リンク2 link3 –

+0

知恵をいただきありがとうございます! –

+0

各ディレクトリを別の行にしたい場合は、 '$ search_path'の前後に引用符を入れてください。 – Barmar

関連する問題