私はこのシナリオに遭遇したことがありません。私は、シェルコマンドからif/elseステートメントを発行しようとしていますが、perl内です。私はシステムとエグゼクティブを成功させようとしました。私はそれが正常に動作シェルでコマンドif ! dpkg -l curl &> /dev/null; then apt-get install curl -y; fi
を実行しますが、perlのから、それを実行するとif
部分をスキップし、それをインストールする右に行く場合にはここでコードperlからif elseシェルコマンドを実行する
if ($os eq 'Ubuntu'){
system('if ! dpkg -l curl &> /dev/null; then apt-get install curl -y; fi');
foreach my $mod (keys %deb){
eval "use $mod";
if([email protected]){
system("apt-get install $deb{$mod} -y");
eval "use $mod";
}
}
}
のサンプルです。
'system( '/ bin/sh -c if!dpkg ...')' –
のように、Perlに依存する代わりに明示的にシェルを呼び出す必要があるかもしれません( '/ bin/sh -c if if dpkg ...')は私を近づけますが、今は不平を言っています!:1:!:構文エラー:予期せぬファイルの終わりです。たぶん私はいくつかの文字を逃れる必要がありますか? –