簡體   English   中英

人偶的shell腳本編寫有問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM