ファイル分類の結果onパラメータを使用してコマンドを呼び出すにはどうすればよいですか?
npx aws-api-gateway-cli-test \
--username $username \
--password $password \
--method $method \
--body cat user.json | jq # <--------- how am I supposed to write this?
上記のコードスニペットで解析エラーが発生しました。
もう一つの試み:
npx aws-api-gateway-cli-test \
--username $username \
--password $password \
--method $method \
--body ${cat user.json | jq}
エラー:代替エラー
参考にできる作品は次のとおりです。
npx aws-api-gateway-cli-test \
--username $username \
--password $password \
--method $method \
--body \{\"test\": \"123\"\}
ベストアンサー1
npx aws-api-gateway-cli-test \
--username "$username" \
--password "$password" \
--method "$method" \
--body "$(cat user.json)"
ksh、zsh、またはbashでは、次のこともできます。
npx aws-api-gateway-cli-test \
--username "$username" \
--password "$password" \
--method "$method" \
--body "$(<user.json)"
$(cmd...)
cmd
、コマンド置換と呼ばれ、出力を拡張して末尾の改行を削除し、bash
すべてのNULバイトの場合。これは、NULを含まないべきJSON(外部コマンドのパラメータはNULを含めることはできません)に適しており、改行文字を含むJSONデータの末尾のスペースは重要ではありません。
コマンド置換のための特定の構文は、1980年代初めのkshに由来し、sh
1990年代初めのPOSIXによって標準化されているため、すべてのPOSIX様シェルでサポートされています。
この機能自体は1970年代後半にBourne Shellで始まりましたが、面倒な`cmd`
構文を使用しました。(t)csh
次に、その構文も使用します。rc
/シェルでは、es
構文は`cmd
またはです`{more complex cmd}
。 Fishは(...)
最新バージョンでのみサポートされています$(cmd)
(二重引用符の中でも使用できます)。
-like シェルではsh
引用符がなく、リストのコンテキストでは、$(cmd)
like は$username
Split+glob (zsh でのみ分割) の影響を受けます。パラメータとして渡すには引用符で囲む必要があります。
詳細については、$(<file)
次を参照してください。Bashのファイル読み取りコマンドの置き換えについて