逆引きシェルスクリプト/実行するシェルスクリプト名を取得する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* 実行するシェルスクリプト名を取得する [#a645d4c3]
#contents
シェルスクリプトを作成したとき、スクリプト自身のファイル...
例えば、引数が足りない場合などにusageのメッセージを出す場...
以下、引数に誤りがある場合にusageメッセージを表示するスク...
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* basenameでスクリプト名を取得する [#s26b5798]
''basename''コマンドによりファイル名を取得することができ...
シェルスクリプトでは''$0''に実行したスクリプト名が代入さ...
#ref(test.sh)
#!/bin/bash
echo $0
上記のシェルスクリプトを動かしてみます。~
以下のように指定されたスクリプト名が$0に代入されているの...
$ chmod +x test.sh
$ ./test.sh
./test.sh
$ /home/sakura/test.sh
/home/sakura/test.sh
* basenameを利用したサンプルシェルスクリプト(script_name_...
以下にbasenameを利用したサンプルシェルスクリプトを紹介し...
#ref(script_name_1.sh)
#!/bin/bash
function usage {
echo Usage: `basename $0` "<message>"
exit 1
}
if [ $# != 1 ]; then
usage
else
echo ARGV: $1
fi
exit 0
** script_name_1.shの動作結果 [#gd2a7258]
動作例を2つ記します。~
1つ目は引数を渡さず実行した状態です。~
Usageが表示されます。
$ ./script_name_1.sh
Usage: script_name_1.sh <message>
2つ目は引数(hello world)を渡し実行した例です。~
引数で渡した文字列が表示されています。
$ ./script_name_1.sh "hello world"
ARGV: hello world
** ${parameter##word}を利用したサンプルシェルスクリプト(s...
basenameのかわりに${parameter##word}を利用した例です。~
basename と ${parameter##word} は同じ動作となります。~
${parameter##word}はbashで利用できます。
#ref(script_name_2.sh)
#!/bin/bash
function usage {
echo Usage: ${0##*/} "<message>"
exit 1
}
if [ $# != 1 ]; then
usage
else
echo ARGV: $1
fi
exit 0
** man bash の抜粋 [#ac88b431]
参考までに''${0##*/}'' の動作について、manから抜粋しまし...
${parameter##word}
The word is expanded to produce a pattern j...
expansion. If the pattern matches the begi...
parameter, then the result of the expansi...
value of parameter with the shortest matchi...
case) or the longest matching pattern (the ...
If parameter is @ or *, the pattern removal...
to each positional parameter in turn, and t...
resultant list. If parameter is an array...
with @ or *, the pattern removal operation ...
member of the array in turn, and the expan...
list.
*関連資料 [#qd8578a2]
- [[逆引きUNIXコマンド/ディレクトリ文字列を削除しファイル...
#br
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* 実行するシェルスクリプト名を取得する [#a645d4c3]
#contents
シェルスクリプトを作成したとき、スクリプト自身のファイル...
例えば、引数が足りない場合などにusageのメッセージを出す場...
以下、引数に誤りがある場合にusageメッセージを表示するスク...
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* basenameでスクリプト名を取得する [#s26b5798]
''basename''コマンドによりファイル名を取得することができ...
シェルスクリプトでは''$0''に実行したスクリプト名が代入さ...
#ref(test.sh)
#!/bin/bash
echo $0
上記のシェルスクリプトを動かしてみます。~
以下のように指定されたスクリプト名が$0に代入されているの...
$ chmod +x test.sh
$ ./test.sh
./test.sh
$ /home/sakura/test.sh
/home/sakura/test.sh
* basenameを利用したサンプルシェルスクリプト(script_name_...
以下にbasenameを利用したサンプルシェルスクリプトを紹介し...
#ref(script_name_1.sh)
#!/bin/bash
function usage {
echo Usage: `basename $0` "<message>"
exit 1
}
if [ $# != 1 ]; then
usage
else
echo ARGV: $1
fi
exit 0
** script_name_1.shの動作結果 [#gd2a7258]
動作例を2つ記します。~
1つ目は引数を渡さず実行した状態です。~
Usageが表示されます。
$ ./script_name_1.sh
Usage: script_name_1.sh <message>
2つ目は引数(hello world)を渡し実行した例です。~
引数で渡した文字列が表示されています。
$ ./script_name_1.sh "hello world"
ARGV: hello world
** ${parameter##word}を利用したサンプルシェルスクリプト(s...
basenameのかわりに${parameter##word}を利用した例です。~
basename と ${parameter##word} は同じ動作となります。~
${parameter##word}はbashで利用できます。
#ref(script_name_2.sh)
#!/bin/bash
function usage {
echo Usage: ${0##*/} "<message>"
exit 1
}
if [ $# != 1 ]; then
usage
else
echo ARGV: $1
fi
exit 0
** man bash の抜粋 [#ac88b431]
参考までに''${0##*/}'' の動作について、manから抜粋しまし...
${parameter##word}
The word is expanded to produce a pattern j...
expansion. If the pattern matches the begi...
parameter, then the result of the expansi...
value of parameter with the shortest matchi...
case) or the longest matching pattern (the ...
If parameter is @ or *, the pattern removal...
to each positional parameter in turn, and t...
resultant list. If parameter is an array...
with @ or *, the pattern removal operation ...
member of the array in turn, and the expan...
list.
*関連資料 [#qd8578a2]
- [[逆引きUNIXコマンド/ディレクトリ文字列を削除しファイル...
#br
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: