2013-05-08 7 views
28

文字列を操作するときにbashのパーセント記号は何を意味しますか?たとえば、${0%/*}の意味は何ですか?Bash:文字列で操作する(パーセント記号)

+11

http://tldp.org/LDP/abs/html/refcards.html#AEN22664 – fedorqui

+1

で確認することができます。 "String Operations"ドキュメントへの新しいリンク:http://tldp.org/LDP/abs/html /refcards.html#AEN22828 –

答えて

27

@ fedorquiのリソースを使用すると、最初の位置引数の最後から/*の最短一致を削除することがわかります。例:例で

example_foo(){ 
    echo ${1%/*} 
} 

example_foo path/to/directory/sub_directory 
# => path/to/directory 

私は最初は、関数の名前であるので、第二の位置引数を使用しました。

+1

よくまとまっていい例があります。 – fedorqui

+2

元の質問に対処するために、 '$ 0'は実行されているスクリプトの絶対パス名です。与えられた式はパスの最後の要素を取り除きますので、 'dirname $ 0'とほぼ同じです。 – chepner

+0

私が理解しているように、この例の '1'はコマンドの2番目の部分を示しています. –

関連する問題