【linux】コマンドの引数を標準入力から渡す
問題
linuxで、コマンドの引数に -
(ハイフン)が指定できるのを見かけるけど、これ何?
答え
UNIXのシェルのコマンドラインでは、ハイフンひとつを標準入出力のことと読み替える習慣がある(絶対ではないが、そういう風にしている場合が多い)。
マニュアルを見た範囲では、「なんだよ、ファイルしか受け付けないのかよ」と思われる場合でも、ハイフンを指定すると、標準入出力への入出力が可能なことが多い。
例
cat -
cat <ファイル名>
とファイル名を書くところにハイフンを書くと、標準入力を受け付ける状態になり、何かキーボードから入力してEnterを押すと、入力内容を標準出力に返してくる。
例
wget https://www.softel.co.jp/ -O -
wgetしてファイル名をつけて保存するところにハイフンを指定すると、標準出力に出てくる。
それをパイプで次の処理に渡して…といったこともできるようになる。
例
wkhtmltopdf - test.pdf
wkhtmltopdf で、入力ファイル名を指定するところにハイフンを指定すると、手入力したHTMLをPDFにしてくれる。
wkhtmltopdf - -
入力ファイル名、出力ファイル名ともハイフンにすると、HTMLをキーボードから手入力でき、入力終了というところで Ctrl – D すると、PDFのデータが標準出力(画面)に出力される。
Linux/Unixでハイフンは標準入出力に読み替えられることが多い | Romantique 76 2015年1月13日 17:01
[…] UNIXのシェルのコマンドラインでは、ハイフンひとつを標準入出力のことと読み替える習慣がある(絶対ではないが、そういう風にしている場合が多い)。 【linux】コマンドの引数を標準入力から渡す at softelメモ […]