bash -cまたはzsh -cに引用符と文字列全体を渡します。

bash -cまたはzsh -cに引用符と文字列全体を渡します。

system(some_command)これは私がPerlから呼び出すときに呼び出されsome_commandます/bin/sh。またはsome_commandなどの他のシェルで実行したいです。bashzsh

zshコマンドを実行するbash1つの方法shは呼び出すことですzsh -c '<command>'。アイデアはコマンドをに渡すことですsystem()。ただし、これには周囲に一重引用符が必要です<command>

しかし、<command>すでに引用符がある場合はどうなりますか?どのように渡しますかzsh -c?たとえば、

find . -name 'something*.txt'

上記の例は説明のためだけのものです。別の例は、bashorで呼び出すバイナリに引用符が付いた項目を渡す必要がある場合ですzsh

ベストアンサー1

使用system LIST、シェルを呼び出しません。つまり

system('/bin/bash', '-c', $your_command);

変える

system("/bin/bash -c '$your_command'");

おすすめ記事