2017-05-28 48 views
2

如何在shell模塊報價中逃脫? 我已經試過如下:Ansible:逃脫報價和上市用戶密碼到期信息

- name: UList 
    shell: "cut -f 1 -d: /etc/passwd | sudo xargs -n 1 -I {} bash -c \" echo {} ; chage -l {}\"" 

- name: UList 
    shell: "cut -f 1 -d: /etc/passwd | sudo xargs -n 1 -I {} bash -c \' echo {} ; chage -l {}\'" 

哪裏錯了嗎?

+0

你能告訴我你想達到什麼用上面的命令? –

+0

我想使用用戶名和密碼過期信息列出系統中的所有用戶。 – kurgulus

+0

解決。謝謝。 – kurgulus

回答

1

這個劇本適合我,希望這對你也有幫助。您可以使用單引號'的命令,如果你有一個問題逃脫"報價

要麼做這樣

'cut -f 1 -d: /etc/passwd | sudo xargs -n 1 -I {} bash -c " echo {} ; chage -l {}"' 或者

"cut -f 1 -d: /etc/passwd | sudo xargs -n 1 -I {} bash -c ' echo {} ; chage -l {}'"

兩者都是工作我做了測試。

--- 
- name: Set my hosts variable 
    hosts: localhost 
    tasks: 
    - name: UList 
    shell: 'cut -f 1 -d: /etc/passwd | sudo xargs -n 1 -I {} bash -c " echo {} ; chage -l {}"' 
    register: result 
    - name: debug 
    debug: 
    msg: "{{result}}" 

或者

對於您所期待的,輸出可以用

awk -F':' '{ system("echo " $1 " && chage -l " $1) }' /etc/passwd

Command explanation

--- 
- name: Set my hosts variable 
    hosts: localhost 
    tasks: 
    - name: UList 
    shell: "awk -F':' '{ system(\"echo \" $1 \" && chage -l \" $1) }' /etc/passwd" 
    register: result 
    - name: debug 
    debug: 
    msg: "{{result}}" 
+0

@kurgulus歡迎... :) –