替換值我有一個XML配置文件名爲config.xml中:shell腳本查找和在XML
<?xml version="1.0" encoding="UTF-8"?>
<config>
<server-ip>192.168.1.45</server-ip>
<server-port>1209</server-port>
<repository-temp-path>/home/john</repository-temp-path>
</config>
我有一個shell腳本來配置「服務器IP」的價值觀,以「服務器端口「和 」導入路徑「 以$ 1,$ 2,$ 3:
#!/bin/sh
if [ $# -ne 3 ];then
echo "usage: argument 1:IP_Address 2:Server_PORT 3:Temp_PATH"
exit 1
fi
IP=$1
PORT=$2
DIRT=$3
echo "Change values in config.xml..."
sed "s/<server-ip>.*<\/server-ip>/<server-ip>$IP<\/server-ip>/;s/<server-port>.*<\/server-port>/<server-port>$PORT<\/server-port>/;s/<repository-temp-path>.*<\/repository-temp-path>/<repository-temp-path>$DIRT<\/repository-temp-path>/" config.xml > config2.xml
echo "Done."
但它僅適用於該」 $ ./abc.sh ABC 「而不是工作的」 $ ./abc。 sh 192.168.1.6 9909/home/bbb「....你能幫助它工作並最終得到一個解決方案更好
XSLT將是這個更好的方法。是否像xsltproc不可用? – ziesemer
我發現它可以使用兩個反斜槓:「$ ./abc.sh 192.168.1.6 9909 \\/home \\/bbb」,但仍無法使用:「$ ./abc.sh 192.168.1.6 9909 $ HOME \\/bbb「 – xoyoja
@ziesemer,是的,但我不熟悉它。你能提供.xsl嗎?謝謝。適用於OS X用戶的 – xoyoja