1. ホーム
  2. bash

[解決済み] 引用符で囲まれたパラメータを受け取り、再送するためのBashスクリプト

2022-12-26 08:01:48

質問

私はbashスクリプトの引用されたパラメータがネストされたスクリプトによって安全に受信されるようにしようとしています。何かアイデアはありますか?

test.sh

#!/bin/bash
echo $*
bash myecho.sh $*

myecho.sh

#!/bin/bash
 echo $1
 echo $2
 echo $3
 echo $4

サンプルです。

bash test.sh aaa bbb '"ccc ddd"'

結果

aaa bbb "ccc ddd"
aaa
bbb
"ccc
ddd"

希望する結果

aaa bbb "ccc ddd"
aaa
bbb
ccc ddd

どのように解決するのですか?

#!/bin/bash
echo $*
bash myecho.sh "$@"

quote;$@" の構造は bash 固有のものではなく、どの POSIX シェルでも動作することに注意してください (少なくとも dash ではそうです)。また、あなたが望む出力では、余分なレベルの引用は全く必要ありません。つまり、上記のスクリプトを以下のように呼び出すだけです。

./test.sh 1 2 "3 4"