ターゲットディレクトリに変更し、新しいディレクトリの内容を一覧表示するbash sciptを1段階で作成したいと思います。これは私が頻繁に連続して使用する2つのコマンドを置き換えます。
- CD ./some_directory
- ls - 卵
スクリプトを実行すると、現在のディレクトリが変更され、ls -alがディレクトリのリストを表示します。
cdl ./some_directory
可能ですか?
答え1
スクリプトが新しいシェルで実行され、シャットダウンスクリプトがシェルを終了し、ディレクトリの変更を「忘れる」ため、シェルスクリプトではこれを実行できません。バラより現在のディレクトリを変更するスクリプト(cd、pwd)たとえば(サイトのどこかに詳細な答えがあるかもしれません)。
代わりに関数を使用する必要があります。
cd1() {
cd "$@"
ls -al
}
答え2
他のオプション(.bashrcにあります):
PROMPT_COMMAND='if [[ "$PWD" != "$_promptPWD" ]]; then ls -al; _promptPWD=$PWD; fi'
_promptPWD=$PWD
ls
ディレクトリを変更すると、bashのPROMPT_COMMAND関数に接続して実行できます。弱点は次のとおりです。
- 既存のPROMPT_COMMAND(存在する場合)にパッチを適用する必要があります。
- 他の変数で環境を乱す(
_promptPWD
)
利点は、正常に入力を続けることができ、動作をcd
得るために他のものを入力する必要がないことです。ls