Webエンジニアのメモ帳

技術的な話を中心に書いています。

sh -c exec {コマンド} について

kubernetesのdeployment.yamlなどでたまに見られる記法なので、気になって試してみました。

$ ls > ls.txt
$ sh -c 'exec ls > ls2.txt'

# 出力の差分を確認
diff ls.txt ls2.txt
# 何も表示されない

結論

sh -c 'exec (コマンド)' はコマンドを直打ちで実行するのと同じなようです。

※ かなり適当に試しているので、環境によって差があったりするかもしれません。