まるでスクリプトに引数として渡されたかのように、読み取りコマンドの環境変数を解析する方法

まるでスクリプトに引数として渡されたかのように、読み取りコマンドの環境変数を解析する方法

呼び出し時に引数を渡すか、引数が渡されない場合は、指示とともにプロンプ​​トを表示するスクリプトがあります。 $ FILE_LOCをパラメータとして渡して$ 1に割り当てる前に拡張できますが、読み取りコマンドを使用するとリテラル "$ FILE_LOC"が保存されます。 readコマンドを使用するときに環境変数として入力を与えると、拡張する良い方法はありませんか?私はevalを使用するトリックを見ましたが、よりきれいな組み込み方法があることを願っています。

たとえば、ユーザー入力とパラメータ入力は同じで、入力は /full/path/to/file, ./relative/path/to/file, ~/home/path/to/file, $saved_pa​​th/th_to_file, ${ saved_pa​​​ th_to_file}/サブフォルダも似ています。

if (( $# -eq 0 )); then
    read -p "Enter target file location:" file_loc
else
    file_loc="$1"
fi

echo "the full path is $(realpath "{$file_loc}")"

ベストアンサー1

おすすめ記事