こんにちは。
sh
, python
などに、動かしたいコマンド(文字列)を指定して実行させる場合、指定する際のオプションは、-c
、 -e
、無しがあるようです(下記例)。
$ sh -c 'command'
$ python -c 'command'
$
$ perl -e 'command'
$ ruby -e 'command'
$ osascript -e 'command'
$
$ awk 'command'
$ jq 'command'
- ワンライナーで多用しますが、
-c
と-e
を取違いしやすいのですが、そもそもなぜ複数種あるのか不思議に思っています。
なお上記例では、コマンド(文字列)をシングルクウォートで括っていますが('command'
)、シェルによって外されます1:
$ echo 'command'
command
-
シングルクウォートで括ると、シェルが文字通りに解釈してくれます。ただし、シングルクウォート文字を使うことはできませんので、その場合は、ダブルクウォートで括る必要があります。 ↩