我試圖連接字符串,然後執行生成的字符串,但它不工作,因爲它應該,這裏是代碼:連接容易的字符串與shell出錯了?
#!/bin/bash
c="ls -alis"
c="$c | grep me"
echo $c
$c
它打印ls -alis | grep me
,但它不打印與任意文件字符串「我」在裏面,它給了我這個錯誤:
ls: |: No such file or directory
ls: grep: No such file or directory
ls: u1920477: No such file or directory
但是,如果我直接鍵入ls -alis | grep me
它確實表明它應該顯示我的文件的終端。這是爲什麼發生?
爲[我之前評論(http://stackoverflow.com/questions/22836510/if-else-statement-in-shell-script#comment34833285_22836510),你需要'$()'執行命令。所以我想你正在尋找'c = $($ c | grep「me」)''。 – fedorqui
你是對的,它的工作!但是,如果我嘗試使用'sort -k 1'來代替grep,則不會。我需要做什麼改變? –
http://mywiki.wooledge.org/BashFAQ/050 – tripleee