逆引きシェルスクリプト/特殊変数$*と$@の違い
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* シェルの特殊変数である$*と$@の違い [#d381e1f2]
シェルスクリプトに渡された引数を展開する、$* と $@ の動作...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#p5619315]
-[[シェルの$特殊変数の一覧および説明>逆引きシェルスクリ...
-[[特殊変数$*と$@の違い>逆引きシェルスクリプト/特殊変数$*...
-[[シェルでランダム値を使用する>逆引きシェルスクリプト/シ...
* ダブルクォーテーションで囲むと動作が違ってくる [#z1fbb2...
以下のサンプルスクリプトを使い、 $* と $@ の違いを説明し...
** サンプルシェルスクリプト [#xf14b4a5]
#ref(arg.sh)
#!/bin/bash
echo '== $* test =='
for arg in $*
do
echo $arg
done
echo '== "$*" test =='
for arg in "$*"
do
echo $arg
done
echo '== $@ test =='
for arg in $@
do
echo $arg
done
echo '== "$@" test =='
for arg in "$@"
do
echo $arg
done
** 実行結果(その1) [#ae17c1d4]
以下の実行結果を見た結果のまとめ
- $*, $@, "$@" は全て同様な動作となっており、3つの引数が...
- "$*" はサンプルシェルスクリプトに与えた3つの引数を分解...
$ ./arg.sh 1 2 3
== $* test ==
1
2
3
== "$*" test ==
1 2 3
== $@ test ==
1
2
3
== "$@" test ==
1
2
3
** 実行結果(その2) [#u74b4bef]
以下の実行結果を見た結果のまとめ
- $*, $@ は同様な動作となっており、ダブルクォーテーション...
- "$*" はサンプルシェルスクリプトに与えた2つの引数を分解...
- "$@" はダブルクォーテーションで2つの引数として渡したの...
$ ./arg.sh "1 2 3" "a b c"
== $* test ==
1
2
3
a
b
c
== "$*" test ==
1 2 3 a b c
== $@ test ==
1
2
3
a
b
c
== "$@" test ==
1 2 3
a b c
* まとめ [#nf3490aa]
- $*, $@ と記述した場合は、どちらも同様の動作となる。
- ダブルクォーテーションで囲んで複数の引数を渡す場合は、"...
以上、$*, $@ の違いでした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* シェルの特殊変数である$*と$@の違い [#d381e1f2]
シェルスクリプトに渡された引数を展開する、$* と $@ の動作...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#p5619315]
-[[シェルの$特殊変数の一覧および説明>逆引きシェルスクリ...
-[[特殊変数$*と$@の違い>逆引きシェルスクリプト/特殊変数$*...
-[[シェルでランダム値を使用する>逆引きシェルスクリプト/シ...
* ダブルクォーテーションで囲むと動作が違ってくる [#z1fbb2...
以下のサンプルスクリプトを使い、 $* と $@ の違いを説明し...
** サンプルシェルスクリプト [#xf14b4a5]
#ref(arg.sh)
#!/bin/bash
echo '== $* test =='
for arg in $*
do
echo $arg
done
echo '== "$*" test =='
for arg in "$*"
do
echo $arg
done
echo '== $@ test =='
for arg in $@
do
echo $arg
done
echo '== "$@" test =='
for arg in "$@"
do
echo $arg
done
** 実行結果(その1) [#ae17c1d4]
以下の実行結果を見た結果のまとめ
- $*, $@, "$@" は全て同様な動作となっており、3つの引数が...
- "$*" はサンプルシェルスクリプトに与えた3つの引数を分解...
$ ./arg.sh 1 2 3
== $* test ==
1
2
3
== "$*" test ==
1 2 3
== $@ test ==
1
2
3
== "$@" test ==
1
2
3
** 実行結果(その2) [#u74b4bef]
以下の実行結果を見た結果のまとめ
- $*, $@ は同様な動作となっており、ダブルクォーテーション...
- "$*" はサンプルシェルスクリプトに与えた2つの引数を分解...
- "$@" はダブルクォーテーションで2つの引数として渡したの...
$ ./arg.sh "1 2 3" "a b c"
== $* test ==
1
2
3
a
b
c
== "$*" test ==
1 2 3 a b c
== $@ test ==
1
2
3
a
b
c
== "$@" test ==
1 2 3
a b c
* まとめ [#nf3490aa]
- $*, $@ と記述した場合は、どちらも同様の動作となる。
- ダブルクォーテーションで囲んで複数の引数を渡す場合は、"...
以上、$*, $@ の違いでした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: