このエントリーをはてなブックマークに追加


引数で渡された最期のスラッシュを削除する方法

引数でディレクトリなどを渡すとき、ひとによって最期にスラッシュをつけたり、つけなかったりすると思います。
スラッシュが2つ続いても特に動作には問題ないことが多いのですが、やっぱりスラッシュは1つにしたいと思った方は以下の方法で簡単に対処できます。


サンプルシェルスクリプト

以下のような引数を表示するスクリプトを作成しました。
尚、動作確認したシェルはbashです。

#!/bin/bash

echo "arg = " $1
echo "arg = " ${1%/}

実際に上記のシェルスクリプトを動かして動作確認してみます。

$ chmod +x dirarg.sh 
$ ./dirarg.sh /home/sakura/
arg =  /home/sakura/
arg =  /home/sakura

上記の実行例は、/home/sakura/を引数として渡しています。
echo ${1%/}と記した部分では、最後のスラッシュが削除されているのが確認できます。
次にスラッシュがなかった場合の動作例です。

$ ./dirarg.sh /home/sakura
arg =  /home/sakura
arg =  /home/sakura

最後にスラッシュがない場合は、何も加工されず出力されます。

スラッシュ以外は?

上記では %/ と記述しましたがスラッシュの部分を#とかにすれば、最後に#があった場合、削除されます。

#!/bin/bash

echo "arg = " $1
echo "arg = " ${1%#}

以下に実行例を記します。

$ chmod +x arg.sh 
$ ./arg.sh sakura#
arg =  sakura#
arg =  sakura

以上、引数の最後の文字が指定した文字の場合、削除する方法でした。



添付ファイル: filearg.sh 422件 [詳細] filedirarg.sh 534件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-11-20 (金) 21:28:52