bash 參數傳遞問題 - Linux

Puput avatar
By Puput
at 2010-11-12T15:39

Table of Contents

大家好

想請教關於 bash script 參數傳遞問題

目前有兩隻 script

a.sh:
nfsroot="-kernel vmlinuz -append 'root=/dev/nfs nfsroot=$ip:/'"
disk="-drive file=$1"
$arg="$disk $nfsroot"
/root/b.sh $arg

b.sh:
echo "num of arg:$#"

當執行$ ./a.sh
num of arg:7

但預期應該是要 6
因為 nfsroot 後面的 'root=.. nfsroot=..' 被當成兩個參數來傳遞了
分別為 'root=/dev/nfs 和 nfsroot=$ip:/'

請問有辦法讓變數傳遞時不要拆成兩個嘛?

謝謝

--
Tags: Linux

All Comments

Thomas avatar
By Thomas
at 2010-11-13T08:45
/root/b.sh "$arg"
Mason avatar
By Mason
at 2010-11-13T14:46
因為有些參數要在a.sh自動產生, 所以還需有a.sh
Xanthe avatar
By Xanthe
at 2010-11-14T19:13
直接./b.sh "$args" 會把所有參數視為一個會出錯
Damian avatar
By Damian
at 2010-11-15T19:06
我耍笨了 你可以把變數用array傳
Blanche avatar
By Blanche
at 2010-11-18T20:48
nfsroot=(-kernel .... 'root=/dev/nfs nfsroot=$ip:/')
Adele avatar
By Adele
at 2010-11-23T03:07
接下來用 "${nfsroot[@]}" 叫出來時就會和原本的一樣了
Olive avatar
By Olive
at 2010-11-27T04:03
t=( a b c ); cnt () { echo $#; }; cnt "${t[@]}"
ans = 3
t=( a 'b c' ); cnt () { echo $#; }; cnt "${t[@]}"
ans = 2

安裝完UBUNTU 10.10...卻只有文字介面

Aaliyah avatar
By Aaliyah
at 2010-11-12T00:09
已爬過文了...之前好像都沒有人有這種問題 明明在試用時可以使用圖形介面 但安裝後卻只能進入文字介面 請問這是什麼問題呢 :( - ...

另一硬碟顆xp加入grub

Sierra Rose avatar
By Sierra Rose
at 2010-11-11T22:44
※ 引述《vn801368 (沒錢了...衰)》之銘言: : 大家好 : 小弟最近開始學著用linux 用的是centos 5.5 : 原本我的電腦有裝xp在一顆sata硬碟上 : 昨天在裝centos的時候 因為怕出意外把xp覆蓋掉 : 所以把那顆sata硬碟拔掉 : 插了另外一顆ide的硬碟專門來裝cen ...

另一硬碟顆xp加入grub

Hedda avatar
By Hedda
at 2010-11-11T22:34
※ 引述《vn801368 (沒錢了...衰)》之銘言: : : 用兩顆硬碟以上是有點麻煩,因為要看進入grub之後grub辨認的硬碟順序 : : 你可以在grubandgt; 底下用find去搜尋/boot所在的磁區來確定sata到底是 hd? 多少(見鳥哥) : 這邊我看了鳥哥還是不知道怎麼找耶... : ...

另一硬碟顆xp加入grub

Rachel avatar
By Rachel
at 2010-11-11T22:12
→ benqm300:你先從BIOS確定順序,然後進入CENTOS,PO你的fdisk -l來 → benqm300:還有鳥哥是說如果只有一顆硬碟的狀態,你看清楚點 推 benqm300:所以你把chainloader的+1拿掉看看,只要chainloader就好 fdisk -l的內容 IDE: Dis ...

wubi沒反應

Zora avatar
By Zora
at 2010-11-11T20:43
我有一台舊電腦想要安裝Ubuntu,舊電腦是PentiumIII 450,512M ram,OS是windows ME。 我直接由光碟開機(ubuntu 9.10) 有出現到語言選項,到選完用中文後,就一直定在一個 畫面,最後出現no value set for /app/netbook/....忘了!這 ...