2016-08-03 10 views
0

Ich versuche, ein Shell-Skript zu schreiben. Darin bekomme ich vom Benutzer Pfad als Ort. Ich möchte herausfinden, ob es mit '/' endet oder nicht. Wenn dies der Fall ist, muss ich es entfernen und einer anderen Variablen zuweisen.csh-Skript - Teilzeichenfolge abrufen oder letztes Zeichen aus der Zeichenfolge entfernen

Script habe ich versucht,

#!/bin/csh 

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

Aber ich bin keine Ausgabe zu bekommen.

+0

Wenn Sie 'awk' verwenden können, tun Sie einfach, echo" $ loc "| awk '{print substr ($ 0, länge ($ 0), 1)}' ' – Inian

Antwort

1

versuchen Sie dies;

#!/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

Danke. Es klappt. Tut mir leid, ich habe vergessen zu fragen. Wie überprüft man, ob 'str' mit'/'endet? Neu in Shell Script;) – iUser

+0

@iUser: das kann dir helfen. –

Verwandte Themen