Arch USB iso、zshの下で、スクリプトを実行します./test
含む:
#!/bin/bash
PATH=$(dirname $0)
ls $PATH
戻り値
ls:コマンドが見つかりません
これを修正する方法はありますか?
編集:lsだけは機能しますが、$ PATHを追加しているときは機能しません
編集:コメントから、$ PATHは環境変数であり、その値を置き換えていたことがわかりました...
変数PATHは特別なものです。特別な変数がたくさんあります(そしてすべてが資本であるため、簡単に回避できます)。 PATH
は、コマンドを検索するためのディレクトリのリストを保持します。
楽しみながら学習するには(これらは同じものですが)、スクリプトの外にecho $PATH
と入力して、その内容を確認します。
問題を修正するには、PATHを壊さないでください。別の変数名を使用してください(すべての大文字ではありません)。
/bin/ls
を試してください。@ 123がコメントで言及しているように、ls
がパスにないようです。
PATH
に/bin
を追加します。 ~/.bashrc
を追加します
export $PATH=$PATH:/bin
試してみてください:
_#!/bin/bash
PATH="$PATH:$(dirname $0)"
ls $PATH
_
このようにして、$(dirname $0)
を置き換える代わりにPATH変数に追加します。または、環境変数を編集せずに$(dirname $0)
を個別に使用する場合は、別の変数名を使用します。