こういうコードは書けない。
#!/usr/bin/env jq {"hello":"world"}
なぜなら jq は渡されたファイルの1行目を無視するようなオプションがないからです。jsonが#
始まりのコメントを許容するようになる未来はあんまり想像がつかない。
無理やりやろうとするなら、jq は標準入力からデータを受け取れるので、最初の行を削除してファイルの内容を標準出力に書き出し受け取ったコマンドにパイプする簡単なコードを挟んで、
#!/usr/bin/env bash # drop_first_line.sh command=${1} file=${2} sed -e 1d $file | $command
こんなふうにするといいのではないか*1。
#!/usr/bin/env drop_first_line.sh jq {"hello":"world"}
それでこうなるわけですよ。
% ./hello.jq { "hello": "world" }
便利!!!
...かな?