3
Nexenta bashスクリプトは、/ usr / bin / sedの代わりに/ usr / sun / bin / sedを使用します
LinuxおよびSolaris(Nexenta)用のスクリプトを使用しています。 この行はLinuxでは機能しますが、solarisでは機能しません(ただし、シェルから実行すると機能します)。 cat "pg_hba.conf" | sed "0,/^local/{s/md5/trust/}" エラーメッセージは次のとおりです。 sed: command garbled: 0,/^local/{s/md5/trust/} いくつかの調査の後sed、スクリプトでbashが使用するものが異なることがわかりました。 シェルから: /usr/bin/sed スクリプトから: /usr/sun/bin/sed スクリプトを使用させたい/usr/bin/sed。 私がやろうとしたこと: sedフルパスで呼び出します。同じ結果。それはまだ他を使用しているようsedです... 経由で呼び出そうとしましたbash -l。同じ結果。 別のコマンドを宣言しようとしました:代わりにS=/usr/lib/sed使用し$Sます。同じ結果。 PATHをチェック-cmdとスクリプトの両方に含ま/usr/binれています。 二重引用符を単一に置き換えようとしました。同じ結果。 -rフラグを指定してsedを実行してみました。出力は次のとおりです。 # /usr/xpg4/bin/sed -r /usr/xpg4/bin/sed: illegal option -- r Usage: sed [-n] script [file...] sed [-n] [-e script]...[-f script_file]...[file...] 助けて?? 「ローカル」で始まる最初の行で、「md5」の最初の一致を「信頼」に置き換える必要があります。そうでない場合でもできることはわかっていますが、sed問題はかゆみが多すぎることです! 編集: 私はこれが少し注文をすることを望みます... ログインシェルからのパス= /usr/local/ctera/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/ctera/apache-ant-1.8.2/bin …