前提・実現したいこと
社内の管理ツールをPHPで作成しています。
$com="cat <(date)";
exec($com,$res);
print_r($res);
といった書き方で
execでコマンドを渡す際にエラーが出てしまい困っています。
$comの部分を $com="ls -al";
などでは正常に処理されます。
execを使ったやり方は過去に何度も行なっていますがこのような現象は初めてです。
発生している問題・エラーメッセージ
sh: -c: line 0: syntax error near unexpected token `(' sh: -c: line 0: `cat <(date)'
該当のソースコード
<?php $com="cat <(date)"; exec("$com",$res); print_r($res)
試したこと
カッコなどにエスケープ処理を行ったりも試しましたが解決しません。サイトで調べてもそのようなエラーで困っている記述は無くほとほと困っています。
同様の問題を経験されている方で解決方法をご存知の方いらっしゃいましたらご教授いただけると助かります。
補足情報(FW/ツールのバージョンなど)
ローカル環境: MAC
PHP7.4.12(MAMP)
上記PHPのコードは紛らわしくならないように簡素化しましたが、実際にはローカルのファイルとリモートのファイルをicdiffを使って差分を出力しようとしています。
$com="icdiff <(ssh -i ".SSH_KEY." ".SSH_USER."@".REMOTE_SERVER." \"cat \\"".$remote_file."\\"\" ) \"".$local_file."\" -H -N -U0";
回答1件
あなたの回答
tips
プレビュー