「読み取り」コマンドで「フル」組み込み機能を有効にする

「読み取り」コマンドで「フル」組み込み機能を有効にする

ファイルを追加/生成するスクリプトを作成したいです(例:this touch)。しかし、それ自体のものがあります。最初の行は変数です。どこ:

echo -n "Choose your folder to save the file: "
read dir
echo -n "What is the name of your file: "
read name

ただし、この場合はフルパスを入力する必要がありますが、Tabボタンを使用してクエリを完了したいと思います。

TABボタンが私のスクリプトで機能したいです。 cat、cd、および他のいくつかのコマンドで動作するように。

よろしくお願いします。

答え1

Bashに入力するときにタブ補完を使用しますかread?もしそうなら、read -eこれはあなたが探しているものです(手動):

オプション:-e Readlineを使用して対話型シェルから行を取得します。

例えば

/tmp/foo$ タッチ abcdef abcghi
/tmp/foo$ read -e -p '入力ファイル名:'
ファイル名を入力: ab[商標]
abcdef abcghi  

実際には、スクリプトが入力をコマンドライン引数として受け入れるようにする必要があります。これにより、他のスクリプトやシェルループなどで実行する方が簡単です。

これは引数の数を保持する$1スクリプトの最初の引数です。$#

#!/bin/bash
if [ "$#" != 1 ]; then
        echo "Usage: $0 <filename>"
        exit 1
fi
echo "Doing something with '$1'..."

関連情報