如何解析读取命令中的环境变量,就像它们作为参数传递给脚本时解析一样

如何解析读取命令中的环境变量,就像它们作为参数传递给脚本时解析一样

我有一个脚本,可以在调用时传递参数,或者如果没有传递参数,则显示带有说明的提示。我可以将 $FILE_LOC 作为参数传递,并在分配为 $1 之前进行扩展,但如果我使用读取命令,它会存储文字“$FILE_LOC”。如果在使用 read 命令时将输入作为环境变量输入,是否有一种很好的方法来扩展输入?我见过使用 eval 的技巧,但我希望有一种更干净的内置方式。

例如,用户输入和参数输入相同,输入为 /full/path/to/file、./relative/path/to/file、~/home/path/to/file、$saved_pa​​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}")"

相关内容