signit.shと言うシェルスクリプトを任意で作成しました。 /dev/null と、コマンド引数 $1について質問があります。ご存知の方がいらっしゃいましたら、ご教示願います。なお今回の質問は下記のページを参考にしています。
- curlでHTTPレスポンスのみを表示する方法 – 養殖Geekは川を上るか
- #15 コマンド引数を使ってみよう | シェルスクリプト入門 – ドットインストール
- /dev/nullとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
質問の主旨
1.
curl -o の次に/dev/nullが出てくるのなぜでしょうか?
2.
$1とはコマンド引数のことを示していると思いますが、この引数はsignit.shを実行するときに使う、URLのことを指しているのでしょうか?
3.
/dev/nullと$1にはどんな関係性があるのでしょうか?
質問の補足
1.
今回の質問であるsignit.shのスクリプトは下記の通りです。1秒に1回curlコマンドでWebサイトからダウンロードを行い、通信が正常であるかどうかを確認するためのスクリプトです。
[php]
#!/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
[/php]
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を用いて一旦レスポンスを引き取り、あとは闇に消すということになります。
関係者のみなさまありがとうございました!