SOFTELメモ

</> 技術者募集

【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のデータが標準出力(画面)に出力される。

関連するメモ

コメント(1)

Linux/Unixでハイフンは標準入出力に読み替えられることが多い | Romantique 76 2015年1月13日 17:01

[…] UNIXのシェルのコマンドラインでは、ハイフンひとつを標準入出力のことと読み替える習慣がある(絶対ではないが、そういう風にしている場合が多い)。 【linux】コマンドの引数を標準入力から渡す at softelメモ […]