カール結果をパラメータとして渡す方法

カール結果をパラメータとして渡す方法

IPアドレスのみを返すWebアプリケーションがあります。そのIPアドレスに接続する必要があるアプリケーションをトリガーする別のバッチスクリプトにそのIP結果を渡したいと思います。

私のテストは次のとおりです。

curl http://silvo.uk.to/IPReg.dll/GetIP | bash starttelem2.sh

テストのために、starttelem2.shには次のものが含まれます。

#!/bin/sh
echo "THE IP IS " $1

しかし、上記のパイプを使用してカールを呼び出すと、カールのダウンロードの進行状況が表示されるようです。

カール呼び出しの結果をbashスクリプトに簡単に渡すにはどうすればよいですか?

答え1

スクリプトは位置引数(パラメータ)()を使用しているため、1コマンド置換を使用してIPアドレスを最初の引数として渡します。$1curl

bash starttelem2.sh "$(curl -s http://silvo.uk.to/IPReg.dll/GetIP)"

$(curl -s http://silvo.uk.to/IPReg.dll/GetIP)curlこれは、内部コマンドの標準出力に置き換えられるコマンド置換です。この-sオプションを使用すると、curlSTDERRに進捗情報は表示されません。

shebangをとして使用しましたが、shスクリプトをのパラメータとして実行しますbashbashはい。そうしない特別な理由がない場合は、shshebangも作成することを検討する必要があります。bash

関連情報