私は独自のバージョンの「cd」コマンドを実装しようとしています。このコマンドは、ハードコードされたディレクトリのリストをユーザーに提示し、ユーザーはリストのエントリに対応する番号を入力する必要があります。今のところ名前が付けられているプログラムはmy_cd.py
、ユーザーを選択したディレクトリに効果的に「cd」する必要があります。これがどのように機能するかの例:
/some/directory
$ my_cd.py
1) ~
2) /bin/
3) /usr
Enter menu selection, or q to quit: 2
/bin
$
現在、を使用して「cd」しようとしてos.chdir('dir')
います。my_cd.py
ただし、おそらく独自の子プロセスで開始されるため、これは機能しません。my_cd.py
次の名前のソースbashスクリプトで呼び出しをラップしようとしましたmy_cd.sh
:
#! /bin/bash
function my_cd() {
/path/to/my_cd.py
}
/some/directory
$ . my_cd.sh
$ my_cd
... shows list of dirs, but doesn't 'cd' in the interactive shell
これを機能させる方法についてのアイデアはありますか? 対話型シェルの現在のディレクトリを Python スクリプトから変更することはできますか?