我正在编写一个 shell 脚本,其中参数将是一个位置的路径。我正在使用 readlink -f 命令获取用户发送的路径的绝对路径。假设用户发送的路径有空格,例如,
/home/stack over flow/location
我排除用户发送报价,例如
"/home/stack over flow/location"
我这里有2个问题,
1)即使路径是用引号传递的,当我遍历 $@ 时,引号也会被抑制并得到不带引号的路径。
2)我做了一个工作来检查参数是否包含空格,我明确地添加了喜欢
if [[ $1 = *\ * ]] ; then
temp=\"$1\"
fi
我在其中明确添加了引号 ",但现在我面临的问题是,即使我添加了带空格的变量,现在 readlink 也不起作用。当我这样做时
full_path=`readlink -f ${temp}`
它的说法用法:readlink [-n] [-f] symlink
如果我在 shell 中将其作为普通的 unix 命令执行,例如
readlink -f "/home/stack over flow/location"
这是有效的,我正在获得完整的路径。为什么即使我附加空格 readlink 在 shell 脚本中也不起作用?这个你能帮我吗。