用于处理文件夹路径的shell脚本

rsh*_*tye 0 shell

我无法处理以下shell脚本

#!/bin/sh
P= '/mnt/temp/'
echo $P
Q= `echo $P` | sed -e "s/^.*\(.\)$/\1/"
echo 'Q is' $Q
echo ${P%?}
Run Code Online (Sandbox Code Playgroud)

我希望输出为

/mnt/temp/
Q is /
/mnt/tmp
Run Code Online (Sandbox Code Playgroud)

[编辑]

作为下一步,我想更新删除尾随/在P,所以我正在尝试

if  ${Q} ="/"
then
   echo in
   P=${P%?}
fi
Run Code Online (Sandbox Code Playgroud)

但在执行时它说

/: Permission denied
Run Code Online (Sandbox Code Playgroud)

Gil*_*not 5

中的变量赋值不允许使用空格,因此:

#!/bin/sh
P='/mnt/temp/'
echo "$P"
Q=$(echo "$P" | sed -e "s/^.*\(.\)$/\1/")
echo "Q is $Q"
echo "${P%?}"
Run Code Online (Sandbox Code Playgroud)

并使用更多引号,请参阅http://mywiki.wooledge.org/Quotes http://mywiki.wooledge.org/Argumentshttp://wiki.bash-hackers.org/syntax/words