我想讓我的工作更輕鬆一些。因此,在這裏我有一個腳本,它將從diff文件中收集IP。問題是awk的輸出不存儲/錯誤的語法是錯誤的。我使用bash。用於存儲命令輸出的變量的字符串Shell腳本
MGR${count_IP}=$(awk -F '[=;]' '{print $2}' "${MgrFile}")
echo "Test=MGR${count_IP}"
for ((count=1;count<=$Manager_Count;count++))
do
MasterFile=/etc/ansible/tmp/tmp_list
MgrFile=/etc/ansible/tmp/tmp_mgr$count
echo "$count-$MgrFile"
grep -r "Manager_$count" $MasterFile > "${MgrFile}"
echo "Copy List of IP and name Info to temp file"
echo "Get MGR$count IP"
MGR${count_IP}=$(awk -F '[=;]' '{print $2}' "${MgrFile}")
echo "MGR${count_IP}"
done
發行部分
echo "Get MGR$count IP"
MGR${count_IP}=$(awk -F '[=;]' '{print $2}' "${MgrFile}")
echo "MGR${count_IP}"
登錄:
1-/etc/ansible/tmp/tmp_mgr1
Copy List Info to temp file
Get MGR1 IP
./2.sh: line 47: MGR=172.16.16.11: command not found
MGR
2-/etc/ansible/tmp/tmp_mgr2
Copy List Info to temp file
Get MGR2 IP
./2.sh: line 47: MGR=172.16.16.14: command not found
MGR
殼是從中調用工具的環境。它不是操縱文字的工具。如果您希望幫助您做任何正確的嘗試,然後發佈[mcve],包括簡潔,可測試的示例輸入和預期輸出,以便我們可以爲您提供幫助。 –
@EdMorton自從1970年以來,Ken Thompson,Steve Bourne,David Korn,Bill Joy,Brian Fox以及所有其他UNIX shell實現者都會非常沮喪地瞭解到,他們浪費了所有時間和精力處理字符串操作功能!不過,我想微軟收到了備忘錄。;-) –
一點也不,字符串操作功能在處理文件和進程以及對工具進行排序調用的上下文中是非常有用和必要的,這些工具是shell的用途。如果我們不能'cmd'$ file「>」$ {file%.csv} .txt「等,我們會在哪裏?由於UNIX工具有很多種方法可以從給定的示例輸入中生成所需的輸出,因此爲每項工作學習正確的工具非常重要,而不是用螺絲刀敲擊指甲並用鑿子驅動螺絲。 –