プログラミング

BashからPowershellやcmdを実行するなら

今までは、psl ruby -e "puts 'OK'"みたいにやってたんですが、

まぁこれって、察せると思いますが、エラー結構でます。

ruby -e "puts 'OK'"の部分がBashのスクリプトとして機能してしまっていることが原因です。
pslの後に続くコードが長くなればなるほど、エラー率上がります。

少なくとも、このやり方だとpowershellで実行したコードと同じ出力が得られる確証はありません。
エスケープとか、忘れたらエラーになるし、最悪変なコードが実行されて大変なことになりかねません。

ということで、これからはこうすることにしました。

psl - <<'EOF'
ruby -e "puts 'OK'"
EOF