1. TOPTOP
  2. Webサービス
  3. Linux

/dev/null と コマンド引数 $1についての質問

|

ecoteki-image

signit.shと言うシェルスクリプトを任意で作成しました。 /dev/null と、コマンド引数 $1について質問があります。ご存知の方がいらっしゃいましたら、ご教示願います。なお今回の質問は下記のページを参考にしています。

質問の主旨

1.

curl -o の次に/dev/nullが出てくるのなぜでしょうか?

2.

$1とはコマンド引数のことを示していると思いますが、この引数はsignit.shを実行するときに使う、URLのことを指しているのでしょうか?

3.

/dev/nullと$1にはどんな関係性があるのでしょうか?

質問の補足

1.

今回の質問であるsignit.shのスクリプトは下記の通りです。1秒に1回curlコマンドでWebサイトからダウンロードを行い、通信が正常であるかどうかを確認するためのスクリプトです。

#!/bin/bash
count=0
trap ' echo
echo "Try count: $count"
      exit ' INT
while :
do
  curl -o /dev/null $1
  count=$(expr $count + 1)
  sleep 1
done

2.

スクリプトを実行して、ctrl + cを入力すると、実行内容が中断されます。

3.

このスクリプトは、UNIXシェルスクリプト マスターピースと言う本のP.6から引用しています。以上、よろしくお願い申し上げます。

質問の回答

1.

curlコマンドで、oオプションを使用したとき必ずFILEが必要となります。と言ってもsignit.shの主旨からしてこの必要なファイルではないので、闇に消すことになります。

2.

$1はコマンド引数のことを指していて、この場合URLが入ります。(https://wordpress.org/ でも https://www.yahoo.com/でも何でも好きなURLを入れてください)

3.

curl -oの構文上は、引数としてURLのレスポンスを引き取ることができるFILEが必要となります。と言ってもリアルなファイルは必要ないので、/dev/nullを用いて一旦レスポンスを引き取り、あとは闇に消すということになります。

関係者のみなさまありがとうございました!