我有一个脚本,可以在调用时传递参数,或者如果没有传递参数,则显示带有说明的提示。我可以将 $FILE_LOC 作为参数传递,并在分配为 $1 之前进行扩展,但如果我使用读取命令,它会存储文字“$FILE_LOC”。如果在使用 read 命令时将输入作为环境变量输入,是否有一种很好的方法来扩展输入?我见过使用 eval 的技巧,但我希望有一种更干净的内置方式。
例如,用户输入和参数输入相同,输入为 /full/path/to/file、./relative/path/to/file、~/home/path/to/file、$saved_path_to_file、${saved_path_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}")"