2016-08-03 14 views
0

シェルスクリプトを作成しようとしています。その中で私はユーザーからの場所としてパスを取得しています。私はそれが '/'で終わるかどうか調べたい。もしそうなら、私はそれを削除して別の変数に割り当てる必要があります。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'が'/'で終わるかどうかをチェックする方法は?シェルスクリプトの新機能;) – iUser

+0

@iUser:これはあなたを助けることができます。 –