ImageMagick -прозрачный фон отображается как черный пиксель в 'гистограмме :информация :' вывод

Вы можете использовать следующий скриптip-parse.sh:

#!/bin/bash

#https://stackoverflow.com/questions/22221277/bash-grep-between-two-lines-with-specified-string
#https://www.cyberciti.biz/faq/bash-remove-whitespace-from-string/
#https://stackoverflow.com/questions/1251999/how-can-i-replace-a-newline-n-using-sed
sed -n '/\<system\>/,/system\>/p' ~/Desktop/x-test.xml | sed -e 's/^[ \t]*//' > ~/Desktop/x-system.xml
sed ':a;N;$!ba;s/\n/ /g' ~/Desktop/x-system.xml > /tmp/xml-one-line.xml

#[]test to see if the "system" section...
#... has the word hostname occuring before the word ip-address    
#https://stackoverflow.com/questions/33265650/grep-for-a-string-in-a-specific-order
if [ -n "$(grep hostname.*ip-address /tmp/xml-one-line.xml)" ]; then 
    echo "File contains hostname and ip-address, in that order."
else
    echo "type=dhcp-client" ; echo "type=dhcp-client" > ~/Desktop/network-config.txt ; exit
fi

#http://www.compciv.org/topics/bash/variables-and-substitution/    
ipaddress="$(grep ip-address ~/Desktop/x-system.xml | sed 's/<ip-address>//g; s/<\/ip-address>//g')"  
defaultgateway="$(grep default-gateway ~/Desktop/x-system.xml | sed 's/<default-gateway>//g; s/<\/default-gateway>//g')"
netmask="$(grep netmask ~/Desktop/x-system.xml | sed 's/<netmask>//g; s/<\/netmask>//g')"

echo "type=static" > ~/Desktop/network-config.txt
echo "ip-address=$ipaddress" >> ~/Desktop/network-config.txt
echo "default-gateway=$defaultgateway" >> ~/Desktop/network-config.txt
echo "netmask=$netmask" >> ~/Desktop/network-config.txt

Пример применения:

paul@mxg6:~/Desktop$./ip-parse.sh   
File contains hostname and ip-address, in that order.  
paul@mxg6:~/Desktop$ cat network-config.txt   
type=static  
ip-address=192.168.0.2  
default-gateway=192.168.0.1  
netmask=255.255.255.0   

Если вам не нужно проверять, стоит ли имя хоста перед ip -адресом, и вы хотите использовать переменные вместо промежуточных файлов, попробуйте это:

#!/bin/bash

xsystemxml="$(sed -n '/\<system\>/,/system\>/p' ~/Desktop/x-test.xml \
| sed -e 's/^[ \t]*//')"

if [ -n "$(echo $xsystemxml | grep ip-address)" ]; then 
    echo "System section contains ip-address."
else
    echo "type=dhcp-client"
    echo "type=dhcp-client" > ~/Desktop/network-config.txt
    exit
fi

ipaddress="$(echo "$xsystemxml" | grep "ip-address" \
| sed 's/<ip-address>//g; s/<\/ip-address>//g')"

defaultgateway="$(echo "$xsystemxml" | grep "default-gateway" \
| sed 's/<default-gateway>//g; s/<\/default-gateway>//g')"

netmask="$(echo "$xsystemxml" | grep "netmask" \
| sed 's/<netmask>//g; s/<\/netmask>//g')"

echo "type=static" > ~/Desktop/network-config.txt
echo "ip-address=$ipaddress" >> ~/Desktop/network-config.txt
echo "default-gateway=$defaultgateway" >> ~/Desktop/network-config.txt
echo "netmask=$netmask" >> ~/Desktop/network-config.txt
0
19.10.2020, 17:18
0 ответов

Теги

Похожие вопросы