[解決済み】Bashスクリプトからカレントディレクトリを変更する
2022-04-07 09:17:07
質問
スクリプトからカレントディレクトリを変更することは可能ですか?
Bashでディレクトリナビゲーションを行うユーティリティを作りたいのですが、どうすればいいですか?私は以下のようなテストスクリプトを作成しました。
#!/bin/bash
cd /home/artemb
Bashシェルからスクリプトを実行しても、カレントディレクトリが変わりません。スクリプトからシェルのカレントディレクトリを変更することは全く不可能なのでしょうか?
解決方法を教えてください。
スクリプトをシェル関数に変換する必要があります。
#!/bin/bash
#
# this script should not be run directly,
# instead you need to source it from your .bashrc,
# by adding this line:
# . ~/bin/myprog.sh
#
function myprog() {
A=$1
B=$2
echo "aaa ${A} bbb ${B} ccc"
cd /proc
}
これは、プロセスごとにカレントディレクトリがあり、シェルからプログラムを実行すると、新しいプロセスで実行されるからである。標準の "cd", "pushd", "popd" はシェルインタプリタに組み込まれているため、シェルプロセスに影響を与えることができるのです。
プログラムをシェル関数にすることで、独自のプロセス内コマンドを追加し、ディレクトリの変更がシェルプロセスに反映されるようになります。
関連
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] openstack の google-chrome-stable ubuntu12 パッケージが見つかりません。
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] スクリプトで "cd "を使ってディレクトリを変更することができないのですが?
-
[解決済み] Bashで現在の作業ディレクトリをスクリプトのディレクトリに設定するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み】 -bash: 予期しないトークン「改行」付近での構文エラー
-
[解決済み】firebase-tools "-bash: firebase: command not found".
-
[解決済み] MacOSのbashターミナルでexport PS1="\u[\033[m]@[\033[32m]\h:\[\033[33;1m]\w[\033[m]\$" は何を意味していますか?
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
[解決済み] OS X で 'find' コマンドを使用して 'sed' を使用するとエラーが発生する。"無効なコマンドコードです。"
-
[解決済み] configureコマンドが見つからない cygwin
-
[解決済み] grepの出力に含まれる重複を削除する
-
[解決済み] MINGW64 "make build" エラー。"bash: make: コマンドが見つかりません"
-
[解決済み] スクリプトで "cd "を使ってディレクトリを変更することができないのですが?