我是shell腳本新手。我的目標是通過shell腳本執行ls命令,但它不返回任何內容。煤礦是一個bash shell的執行shell腳本的問題
set p = `/bin/ls`
echo $p
我要去哪裏錯了
我是shell腳本新手。我的目標是通過shell腳本執行ls命令,但它不返回任何內容。煤礦是一個bash shell的執行shell腳本的問題
set p = `/bin/ls`
echo $p
我要去哪裏錯了
對於bash做到這一點的方法是
p="$(/bin/ls)"
# Could have done p=`/bin/ls` too, but $(is the newer way
echo "$p"
的set
命令不是標準的變量賦值。
簡單
p=`/bin/ls`
就足夠了,雖然我更喜歡$()
結構,因爲它很容易嵌套:
pax$ p=$(/bin/ls)
pax$ echo $p
clients.dat clientupdate.sh
你的set
做(處理所有有效的開關來設置shell的屬性,後其中沒有)將參數分配給$n
參數:
pax$ set p = `/bin/ls`
pax $ echo xx $1 xx $2 xx $3 xx $4 xx $5
xx p xx = xx clients.dat xx clientupdate.sh xx xx
從man bash_builtins
頁:
任何後處理的選項都視爲該位置參數值和被分配,以便以
$1, $2, ... $n
剩餘的參數。
謝謝。這是gr8 – CHID 2011-06-17 05:05:24
Bash的語法是分配給變量時沒有投入的空間,所以像這樣做:
p=`/bin/ls`
echo $p
你就不能寫...
/bin/ls
...在一行中?
謝謝@sodved,解決方案工作。 – CHID 2011-06-17 05:04:48