2016-08-03 19 views
0

我正在尝试编写一个shell脚本。在那里,我从用户获得路径作为位置。我想知道它是否以'/'结尾。如果是这样,我必须将其删除并将其分配给另一个变量。csh脚本 - 获取子字符串或从字符串中删除最后一个字符

脚本我试图

#!/bin/csh 

set loc="/home/user/" 
if (("$loc" == */)) 
then 
    echo true 
    set b=${loc::-1} 
    echo $b 
else 
    echo false 
endif 

但我没有得到任何输出。

+0

如果您可以使用'awk',只需要''echo“$ loc”| awk'{print substr($ 0,length($ 0),1)}'' – Inian

回答

1

试试这个;

#!/bin/csh 
set loc="/home/user/" 
set lastChar=`echo $loc | rev | cut -c -1` 
if ("$lastChar" == "/") then 
    echo true 
set b=`echo $loc | rev | cut -c 2- | rev` 
#set b=`echo $loc | sed s'/.$//'` 
#set b=`echo $loc | awk '{print substr($0, 1, length($0)-1)}'` 
echo $b 
else 
    echo false 
endif 
+0

谢谢。有用。对不起,我忘了问。如何检查'str'是否以'/'结尾? Shell脚本新手;) – iUser

+0

@iUser:这可以帮助你。 –

相关问题