web-dev-qa-db-ja.com

ここにダブルスラッシュがあるのはなぜですか?

$ which mycommand
/home/t/program_files/document/other edits//mycommand

なぜダブルスラッシュがあるのですか// ここに?

1
Tim

whichはPATHを検索します。 mycommand$PATHエントリで、末尾にスラッシュが付いている場合があります:/home/t/program_files/document/other edits/whichは、ディレクトリ、セパレータとしての/、およびチェックするファイル名を作成するためのコマンド名を連結します。ディレクトリの末尾にスラッシュがある場合、これは2つのスラッシュになります。

複数のスラッシュは1つのスラッシュと同等です なので、これは完全に無害です。

P.S. 「どちら」を使用しないのはなぜですか?次に何を使用するのですか?

これは、/に場所/home/t/program_files/document/other editsを追加するときに、末尾にスラッシュ($PATH)を付けたためです。

あなたが使用した可能性があります:

PATH=$PATH:/home/t/program_files/document/other\ edits/

末尾の/を取り除くために使用する必要があります:

PATH=$PATH:/home/t/program_files/document/other\ edits

これはそれほど問題ではありませんが、シェルは///として扱うためAFAIKです。

2
heemayl