我正在尝试使用 sed 将从 zenity 的 --color-selection 对话返回的 12 位十六进制代码转换为 6 位十六进制代码。例如:#dfe251a951a9 到 #df5151。但是一旦我在下面的代码中使用 sed,它就会破坏整个脚本,当我选择“选择”或“取消”按钮时,我没有得到相应的回声!有什么问题?
在使用 sed 之前:一切正常,但我得到 12 位十六进制代码。
#!/bin/bash
color=$(zenity --color-selection)
if [[ $? == 0 ]]
then
echo "You selected $color."
else [[ $? == 1 ]]
echo "No color selected."
fi
使用 sed 后:当我点击选择按钮时,我得到 6 位十六进制代码,但是当我点击取消时,我没有得到“没有选择颜色”,它回显“你选择了”。
#!/bin/bash
color=$(zenity --color-selection | sed 's/\(#\?..\)../\1/g')
if [[ $? == 0 ]]
then
echo "You selected $color."
else [[ $? == 1 ]]
echo "No color selected."
fi