[英]Having issues in shell scripting for puppet
awk 'BEGIN { FS = ","} ; { "puppet node purge " $0 } ' < input.txt
我試圖讓puppet node purge命令從輸入文件中拉出我的服務器后運行,但是當它在腳本中運行時,它會完全跳過。 我的想法是,它可以讀取p節點清除,但不執行它。
awk 'BEGIN { FS = ","} ; { print "puppet node purge " $0 } ' < input.txt >> output.txt
像這樣運行時,它將創建輸出文件,該文件將主機名附加到puppet node purge。
在將讀取文本文件,添加清除命令並從那里運行它的shell中執行它的正確方法是什么?
當您要調用Shell工具時,不要讓shell調用awk來調用system來調用shell來調用您的工具。 只需從shell調用它:
$ cat file
stuff
nonsense
foo bar
$ < file xargs -I {} -n 1 echo puppet node purge {}
puppet node purge stuff
puppet node purge nonsense
puppet node purge foo bar
擺脫了echo
,當你感到高興。
這應該適合您的用例: for host in $(cat input.txt | tr ","); do puppet node purge $host ; done
for host in $(cat input.txt | tr ","); do puppet node purge $host ; done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.