Linux文本處理命令-echo

echo 在linux幫助文檔的描述是顯示一行文本,相似於python和java等編程語言中的print語句,實際上它的做用不單單如此。能夠使用man echo查看詳細的參數說明。java

example1: 顯示一行文本,任何特殊字符都不會被轉義python

[root@aliyun-hk1 linux-shell-test]# echo hello\nworld
hellonworld
[root@aliyun-hk1 linux-shell-test]# echo 'hello\nworld'
hello\nworld
[root@aliyun-hk1 linux-shell-test]# echo hello world
hello world
[root@aliyun-hk1 linux-shell-test]#

example2: 顯示一行文本,不要輸出末尾的換行符linux

[root@aliyun-hk1 linux-shell-test]# echo -n hello world
hello world[root@aliyun-hk1 linux-shell-test]# echo hello world
hello world

example3: 顯示一行文本,啓用反斜槓後面的轉義字符shell

[root@aliyun-hk1 linux-shell-test]# echo -e 'hello\nworld'
hello
world
[root@aliyun-hk1 linux-shell-test]# echo -e 'hello\tworld'
hello   world

example4: 顯示一行文本,禁用反斜槓後面的轉義字符,echo默認參數編程

[root@aliyun-hk1 linux-shell-test]# echo -E 'hello\nworld'
hello\nworld
[root@aliyun-hk1 linux-shell-test]# echo -E 'hello\tworld'
hello\tworld

example5: echo與cat的差別對比,echo只用於輸出文本,cat用於輸出文件內容或者從標準輸入中輸出網絡

[root@aliyun-hk1 linux-shell-test]# echo hello
hello
[root@aliyun-hk1 linux-shell-test]# cat hello
cat: hello: No such file or directory
[root@aliyun-hk1 linux-shell-test]# echo /etc/hostname
/etc/hostname
[root@aliyun-hk1 linux-shell-test]# cat /etc/hostname
aliyun-hk1
[root@aliyun-hk1 linux-shell-test]# echo hello|cat
hello
[root@aliyun-hk1 linux-shell-test]#

examle6: echo在自動化構建中的做用,例如咱們能夠將DB中返回的數據格式化成ansible須要的數據,經過with_lines 傳入某個task並循環使用。在某些狀況下,從網絡、DB等方式獲取的標準輸出,能夠經過echo結合awk和grep等實現結果的格式化或數據清洗,而後用到後續的​腳本中。編程語言

[root@aliyun-hk1 linux-shell-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'
name phone addr
robin 13712345678 CN
tom 13812345678 HK
[root@aliyun-hk1 linux-shell-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk  'NR>1 {print $1}'
robin
tom
- name: show the items from DB
      debug:
        msg: "{{ item }}"
      with_lines: "echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk  'NR>1 {print $1}'
​
TASK [show the items from DB] ****************************************************************************************************************************************************************************************************************ok: [localhost] => (item=robin) => {
    "msg": "robin"
}
ok: [localhost] => (item=tom) => {
    "msg": "tom"
}

example7: echo還能夠將獲取到並格式化好的數據寫入到一個文件,等待後續使用​。debug

[root@aliyun-hk1 ansible-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk  'NR>1 {print $1}' > DataFromDB1.txt
[root@aliyun-hk1 ansible-test]# cat DataFromDB1.txt
robin
tom
[root@aliyun-hk1 ansible-test]#
相關文章
相關標籤/搜索