我正在编写一个Shell脚本,其中参数将是一个位置的路径。我使用readlink -f命令获取用户发送的路径的绝对路径。假设用户发送的路径中有空格,像这样:
我期望用户发送带引号的文本,例如:
我这里有两个问题, 1) 即使路径被引号括起来,当我遍历 $@ 时,引号会被忽略,获取的路径是没有引号的。 2) 我想要检查参数是否包含空格,所以我采取了一种解决方法并显式添加空格。
我在引号中明确添加了引号,但我现在面临的问题是,即使我添加了带有空格的变量,readlink仍然无法工作。 当我执行时。
它的意思是: 用法:readlink [-n] [-f] 符号链接 如果我在shell中像普通的Unix命令一样执行它
正在工作,我得到了完整的路径。为什么即使我添加空格,readlink 在 shell 脚本中也无法工作?请帮助我解决这个问题。
/home/stack over flow/location
我期望用户发送带引号的文本,例如:
"/home/stack over flow/location"
我这里有两个问题, 1) 即使路径被引号括起来,当我遍历 $@ 时,引号会被忽略,获取的路径是没有引号的。 2) 我想要检查参数是否包含空格,所以我采取了一种解决方法并显式添加空格。
if [[ $1 = *\ * ]] ; then
temp=\"$1\"
fi
我在引号中明确添加了引号,但我现在面临的问题是,即使我添加了带有空格的变量,readlink仍然无法工作。 当我执行时。
full_path=`readlink -f ${temp}`
它的意思是: 用法:readlink [-n] [-f] 符号链接 如果我在shell中像普通的Unix命令一样执行它
readlink -f "/home/stack over flow/location"
正在工作,我得到了完整的路径。为什么即使我添加空格,readlink 在 shell 脚本中也无法工作?请帮助我解决这个问题。
readlink -f "$*"
有效吗? - perrealfull_path=$(readlink -f "$temp")
。注意双引号。 - fork0