PATHを使用してコマンドライン変数を作成する

PATHを使用してコマンドライン変数を作成する

私はネットワークの専門家なので、これについての助けが必要なので、質問する前に何をしたいのかを説明します。

以下を実行するバッチスクリプトを作成しています。

  • 外部サーバーからGETリクエスト(jsonファイル)、データを受信し、ローカルに.jsonとして保存
  • JQを使用したjsonのナビゲーション結果[0]。タイトル
  • カール要求のパラメータとして「タイトル」を使用する

一度ローカルにファイルがあります。 JQ を使用してオブジェクトのデータを検索します。

cat file.json | jq '.results[0].title' > $1 && curl -i -H "Accept: application/html" -H "Content-Type: application/html" -X GET http://example.com/test/$1 > test.txt

パイプラインコマンドで一時的に使用するために、コマンドライン "$ 1"にローカル変数を設定できますか?

私はここから出てきますか?

答え1

通常、特別な意味(スクリプト/関数/などに渡される最初の引数)がありますが、$1実際にはコマンドの出力を変数に格納できます。

title=$(jq -r '.results[0].title' file.json)
curl -i -H "Accept: application/html" -H "Content-Type: application/html" -X GET http://example.com/test/"$title" > test.txt

最初の部分では、コマンドを実行してjq -r '.results[0].title' file.json出力をstdout変数に保存しますtitle。次にコマンドを実行しcurl、変数をtitleURLの一部に展開します。

関連情報