我有一个功能,我打电话来检查文件的存在(在你这样的用户的帮助下已经大大改进了),如果用户使用了该功能,则该功能会中断。 (点)表示当前工作目录作为完整参数。
在那里已经有一个句柄来解释路径中的〜(代字号),所以我认为它应该不难处理。 (点)。这是当前的功能:
1 exist.fn() {
2 local dir="$1"
3 while [ ! -d "$dir" ]; do
4 echo -e "\033[1m\"$dir\"\033[0m does not exist." >&2
5 read -u2 -e -p "Enter a valid path: " dir
6 dir="${dir/\~/$HOME}"
7 done
8 echo "$dir"
在任何情况下,我都认为我可以在顶部插入一些像这样的小黑客,它可以解决问题:
if [ "$dir" == '.' ]; then
dir=$( pwd )
fi
但是,没有骰子。有人在意吗?我仍然很好奇为什么这种方式不起作用。任何和所有输入都表示赞赏。
[编辑]:好的,所以第6行的替换是字符串操作。现在调查一下。