他の回答で説明したように、ディレクトリを変更しましたが、スクリプトを実行するサブシェル内のみですです。これは親シェルには影響しません。
1つの解決策は、bashスクリプト()の代わりにbash関数を使用することsh
です。bashスクリプトコードを関数に配置する。これにより、関数がコマンドとして使用できるようになり、子プロセスなしで実行されます。cd
コマンドは呼び出し元のシェルに影響を与えます。
バッシュ機能:
bashプロファイルの1つの機能は、アプリケーションまたはコマンドを実行するのと同じ方法で、ターミナルまたはbashスクリプトで実行できるカスタム関数を格納することです。これは、長いコマンドのショートカットとしても使用できます。
関数の効率的なシステムを広くするには、いくつかのファイルの最後に関数をコピーする必要があります
/home/user/.bashrc
/home/user/.bash_profile
/root/.bashrc
/root/.bash_profile
あなたはできるsudo kwrite /home/user/.bashrc /home/user/.bash_profile /root/.bashrc /root/.bash_profile
編集に/すぐにそれらのファイルを作成します
方法 :
bashのプロファイルファイルの最後にある新しい関数内にbashスクリプトコードをコピーしてターミナルを再起動すると、実行しcdd
た関数または記述した関数を実行できます。
スクリプトの例
ショートカットを作成cd ..
してcdd
cdd() {
cd ..
}
lsショートカット
ll() {
ls -l -h
}
lsショートカット
lll() {
ls -l -h -a
}