シェルスクリプトへの入力に端末のオートコンプリートパス機能を使用する


8

次のようなスクリプトを作成したいと思います。(1)ユーザーがタブを使用してオートコンプリートを実行できるようにするパスを取得し、(2)ユーザーからファイル名を取得し、(3)そのパスに拡張子が付いたファイルを作成します。 txt。

私の質問は次のとおりです。「自動補完」パスである入力を要求するようにbashに指示するにはどうすればよいですか?

注:パスにはほとんどの場合スペースが含まれます。

回答:


15
read -p "enter a directory: " -i "$HOME/x/" -e path

bashセッションから、次のように入力します。 help read|less


ありがとう!OSXで次のエラーが表示されます: "-bash:読み取り:-i:無効なオプション読み取り:使用方法:読み取り[-ers] [-u fd] [-tタイムアウト] [-pプロンプト] [-a配列] [-n nchars] [-d delim] [name ...] "これはosxのものですか?

それは私がそれを使用する予定の場所であるDebianで動作します。:)

あなたはおそらく、あなたのMac上のbashの古いバージョンを持っている:echo $BASH_VERSION
グレンはジャックマン

2
この-iフラグはbash4.0 で追加されました。のみhelp '[r]ead'のヘルプを取得しますreadread -e~で完了することができますが、展開されないことに注意してください。
ステファンChazelas

2
これは、$ path変数にリテラルのチルドを取得することを意味します。これは処理が難しい場合があります。-i "$HOME/x/"
振り返ってみると
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.