[解決済み】シェルスクリプトの$@はどういう意味ですか?
2022-03-30 09:44:26
質問
ドル記号の後にアットマークを付けるとどうなるのか(
@
は、シェルスクリプトの中でどのような意味を持つのでしょうか?
例えば
umbrella_corp_options $@
解決方法は?
$@
とほぼ同じです。
$*
どちらも「すべてのコマンドライン引数」という意味です。 これらはしばしば、単にすべての引数を他のプログラムに渡すために使われます(したがって、その他のプログラムの周りにラッパーを形成します)。
この2つの構文の違いは、スペースが含まれる引数(例)を持つ場合に現れます。
$@
を二重引用符で囲んでください。
wrappedProgram "$@"
# ^^^ this is correct and will hand over all arguments in the way
# we received them, i. e. as several arguments, each of them
# containing all the spaces and other uglinesses they have.
wrappedProgram "$*"
# ^^^ this will hand over exactly one argument, containing all
# original arguments, separated by single spaces.
wrappedProgram $*
# ^^^ this will join all arguments by single spaces as well and
# will then split the string as the shell does on the command
# line, thus it will split an argument containing spaces into
# several arguments.
例 呼び出し
wrapper "one two three" four five "six seven"
になります。
"$@": wrappedProgram "one two three" four five "six seven"
"$*": wrappedProgram "one two three four five six seven"
^^^^ These spaces are part of the first
argument and are not changed.
$*: wrappedProgram one two three four five six seven
関連
-
[解決済み] Ubuntuにchkconfigをインストールするにはどうしたらいいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] ディレクトリが存在しない場合のみmkdirする方法は?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] シェルコマンドを実行しながらエコーする方法
-
[解決済み] bashスクリプトでset -eはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Linuxのdocker-composeでパーミッションが拒否されました【終了】。
-
[解決済み] sysrootとは何ですか、そしてどのように作成しますか?
-
[解決済み】スラッシュとrsyncコマンド
-
[解決済み] glibc: elfファイルのOS ABIが無効です。
-
[解決済み] 共有メモリページとフォーク
-
[解決済み] sshpass: コマンドが見つからないエラー
-
[解決済み] 共有ライブラリの読み込み中にエラーが発生しました: libncurses.so.5:
-
[解決済み] STRACEがEAGAINを表示する理由(リソースが一時的に使用できないため)
-
[解決済み] ftp: 名前またはサービスが不明
-
[解決済み] VIMでの検索と置換の結果、末尾の文字が表示される