コマンドからの出力テキストをファイル名として使用する

コマンドからの出力テキストをファイル名として使用する

curl http://v6.ipv6-test.com/api/myip.php現在の IPv6 アドレスを返します。

この文字列を、作成するファイル名の一部として使用し、その後にスクリプトが実行されたときのタイムスタンプを続けたいと思います。

どうすればそれができると思いますか?

答え1

文字列の結果を変数として使用するには、構文$(command)(別名コマンド置換):

whatevercommand >$(curl http://v6.ipv6-test.com/api/myip.php)-$(date '+%F@%T')

ただし、この特定のケースでは、ネットワークの問題が発生した場合に予期しない結果が発生する可能性があるため、これは少し危険です。そのため、アドレスを個別に取得するのが最善です。

myip=$(curl http://v6.ipv6-test.com/api/myip.php)
[[ $? -ne 0 ]] && exit 1
whatevercommand >$myip-$(date '+%F@%T')

実際には、 を使用して ipV6 アドレスを取得できますip address show

関連情報