sed を使用して、zenity の --color-selection ダイアログから返された 12 桁の 16 進数コードを 6 桁の 16 進数コードに変換しようとしています。例: #dfe251a951a9 から #df5151。しかし、次のコードで sed を使用するとすぐにスクリプト全体が壊れ、「選択」または「キャンセル」ボタンを選択すると、それぞれのエコーが得られません! どうしたの?
sed を使用する前: すべて正常に動作しますが、12 桁の 16 進数コードが表示されます。
#!/bin/bash
color=$(zenity --color-selection)
if [[ $? == 0 ]]
then
echo "You selected $color."
else [[ $? == 1 ]]
echo "No color selected."
fi
sedを使用した後:選択ボタンを押すと6桁の16進コードが表示されますが、キャンセルを押すと「色が選択されていません」と表示されず、「選択しました」と表示されます。
#!/bin/bash
color=$(zenity --color-selection | sed 's/\(#\?..\)../\1/g')
if [[ $? == 0 ]]
then
echo "You selected $color."
else [[ $? == 1 ]]
echo "No color selected."
fi