您已經爲時不遠了,但有幾個排序警告,可能會導致問題。許多系統對於ifconfig
輸出行都有不同的格式。一些與inet xxx.xxx.xxx.xxx
,別人用inet addr:xxx.xxx.xxx.xxx
。 (這是最常見的兩種)。您可能還需要處理多個有線inet接口(盒中的2+網卡)的情況。但是,如果只有1個網卡,你可以嘗試以下處理共同ifconfig
格式:
DATE=`date +%Y-%m-%d`
IP_ADDR=$(ifconfig |
grep -v '127.0.0.1' |
grep -E 'inet[ ](addr:)*[0-9]{1,3}([.][0-9]{1,3}){3}' |
sed -e 's/^.*inet \(addr:\)*//' -e 's/ .*$//')
/bin/mkdir -p /mnt/db-backup/12/$DATE/$IP_ADDR/
或IP_ADDR
寫成一行:
IP_ADDR=$(ifconfig | grep -v '127.0.0.1' | grep -E 'inet[ ](addr:)*[0-9]{1,3}([.][0-9]{1,3}){3}' | sed -e 's/^.*inet \(addr:\)*//' -e 's/ .*$//')
要找到你可以改變這個問題你腳本將ifconfig的輸出保存在文件中。還有變量IP_ADDR。 – erik
都返回正確的值:10.1.1.3 –
順便說一句,'grep的-v富| SED的/酒吧/巴茲/''是[無用使用'grep'](http://www.iki.fi/era/unix/award.html#grep),並且更好的寫入'的sed -n' /富/!S /酒吧/巴茲/ p'' – tripleee