スクリプトを使用してディレクトリを変更する方法


10

このスクリプトがあります

#!/bin/bash
cd /home/user/somedir
pwd

期待どおりに動作しますが、このスクリプトで/ home / user / somedirに移動させたいのですが、同じディレクトリにいます。

(gnome-terminalで)私を/ home / user / somedirに転送するスクリプトの書き方は?


回答:


14

あなたはsourceあなたのスクリプトが必要です。そうでない場合は、別のサブシェルで実行され、サブシェルの作業ディレクトリを変更しますが、実行したシェルは変更しません。

それを調達するには:

. myfile.sh

または

source myfile.sh

あなたはここでもっと読むことができます


私はそれを追加しようとしていました... UAdadapterは、sh myfile.shまたは./myfile.shのようなshelllスクリプトを実行している場合、danjilの説明どおりに実行されます。danjilのオプションのどちらかがうまくいくはずです。
itnet7 2011

3

exec bash最後に使う

bashスクリプトは、現在の環境またはその子の環境で動作しますが、親の環境では動作しません。

ただし、別のディレクトリからbashスクリプトを実行した後、特定のディレクトリのbashプロンプトが表示されたままになるため、この質問がよく寄せられます。

この場合は、スクリプトの最後で子bashインスタンスを実行するだけです。

#!/bin/bash
cd /home/user/somedir
exec bash
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.