[請益]關於bash語法

sh/bash/dash/ksh/zsh等Shell脚本
回复
閒逛達人
帖子: 39
注册时间: 2014-10-13 16:05

[請益]關於bash語法

#1

帖子 閒逛達人 » 2014-10-30 16:31

請問各位前輩
下列是再uck環境下所執行的語法
小弟不太懂後面所執行的敘述
請問前輩們下面流程是如何執行的
$3 = four.sh
sudo uck-remaster-chroot-rootfs ~/tmp /bin/bash -c "./one.sh $3;rm ./one.sh;rm ./three.sh"
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: [請益]關於bash語法

#2

帖子 astolia » 2014-10-30 19:08

歡迎來自臺灣的朋友。
uck-remaster-chroot-rootfs本身是個bash script,所以可以直接用cat查看,也可以用bash -x來執行,即

代码: 全选

sudo bash -x /usr/bin/uck-remaster-chroot-rootfs ~/tmp /bin/bash -c "./one.sh $3;rm ./one.sh;rm ./three.sh"
簡單地說,流程如下:
1、把一些必要的系統文件複製到~/tmp下,構建出一個可用的chroot環境
2、再執行chroot ~/tmp /bin/bash -c "./one.sh $3;rm ./one.sh;rm ./three.sh",即以~/tmp爲新的根目錄用bash依次執行/one.sh $3;rm ./one.sh;rm ./three.sh
3、最後做一些清理工作
閒逛達人
帖子: 39
注册时间: 2014-10-13 16:05

Re: [請益]關於bash語法

#3

帖子 閒逛達人 » 2014-10-31 9:18

謝謝astolia大大的解說
我比較困惑的地方是"./one.sh $3;rm ./one.sh;rm ./three.sh"
第一次先執行one.sh 接著執行$3 最後刪除兩個檔案
但後續為什麼又要再執行一次一次one.sh呢?
還是我理解錯誤呢?
麻煩前輩提點了
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: [請益]關於bash語法

#4

帖子 astolia » 2014-10-31 9:44

"./one.sh $3;rm ./one.sh;rm ./three.sh"按;分割開來就是

代码: 全选

./one.sh $3
rm ./one.sh
rm ./three.sh
先是把$3即four.sh作為參數來執行one.sh,four.sh到底有沒有被執行要看one.sh的内容
然後是刪除one.sh和three.sh兩個檔案
單從你提供的指令中我並沒有看到後續再次執行one.sh的代碼,如果那只是一系列命令中的一部分,請把其餘的也一併貼出來
閒逛達人
帖子: 39
注册时间: 2014-10-13 16:05

Re: [請益]關於bash語法

#5

帖子 閒逛達人 » 2014-10-31 16:05

謝謝astolia大大的提點
小弟受惠良多:)
回复