背景
計劃核對內網IP的使用情況,所以寫了個小腳本掃描有哪些IP還在使用,執行腳本程序中發現函式中一直獲取不到變數的值,排查后將結論記錄下來,
問題現象
已經配置了全域變數,但是在函式中使用時,無法讀取到變數的值,代碼如下:
result = "/tmp/active_ip.txt"function get_status(){
ping -c1 $1
if [ "$?" = 0 ];then
echo "$1" >> "$result"
fi
}
for i inseq 1 254
do
get_status "$1.$i"
done
問題原因
shell腳本變數賦值時,不能加空格,不然會認為是在執行命令,造成賦值失敗
發現問題原因后,再回去仔細查看日志,發現有一條報錯,但是因為回圈刷了太多日志,所以沒有注意到
get_active_ip.sh: line 4: result: command not found
修改后的命令
result="/tmp/active_ip.txt"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/412774.html
標籤:Linux
