呼び出し時に引数を渡すか、引数が渡されない場合は、指示とともにプロンプトを表示するスクリプトがあります。 $ FILE_LOCをパラメータとして渡して$ 1に割り当てる前に拡張できますが、読み取りコマンドを使用するとリテラル "$ FILE_LOC"が保存されます。 readコマンドを使用するときに環境変数として入力を与えると、拡張する良い方法はありませんか?私はevalを使用するトリックを見ましたが、よりきれいな組み込み方法があることを願っています。
たとえば、ユーザー入力とパラメータ入力は同じで、入力は /full/path/to/file, ./relative/path/to/file, ~/home/path/to/file, $saved_path/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}")"