PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

回應
 
主題工具
goddesschi
*停權中*
 

加入日期: Mar 2007
文章: 186
[請益]請教一個shell script使用上的問題

假設scrip的內容是如下
---------------------------------------------------------
#!/bin/sh

name="We Have Overcome (HM27 1989)"
rarachive=` sed -n 1p test.txt `

---------------------------------------------------------


假設txt文件的內容如下行
---------------------------------------------------------
rar a -m0 -hp123456789 -v90960b -rr3 -ep1 test.rar "$name"
---------------------------------------------------------


請問有沒有辦法從shell script裡面直接調用rarachive取得的文字(如上rar a -m0 -hp123456789 -v90960b -rr3 -ep1 test.rar "$name")當作command line來執行,且command line中的$name需要由shell script中得自定義變數(如上"We Have Overcome (HM27 1989)")來取得

請教大家
     
      

此文章於 2014-08-16 10:33 PM 被 goddesschi 編輯.
舊 2014-08-16, 10:31 PM #1
回應時引用此文章
goddesschi離線中  
死囝仔埔
Regular Member
 
死囝仔埔的大頭照
 

加入日期: Nov 2006
文章: 94
直接在script裡面,直接執行另一個script,
同時帶參數或管線,應該可以吧?
 
舊 2014-08-17, 09:25 AM #2
回應時引用此文章
死囝仔埔離線中  
NTC_TW_IT
Regular Member
 

加入日期: Jul 2014
文章: 89
rarachive 寫成function不就好了?
shell只要帶rarachive.sh rarachive
就可以執行了阿,你要帶啥參數就帶啥
不過如果參數中有空白就要小心

#!/bin/sh
function archive(){
rarachive=$(sed -n 1p test.txt)
}
name="We Have Overcome (HM27 1989)"

if [ $# -ne 0 ];then
for opt in ${@};do
cmd="$cmd ${opt}"
done
$cmd
fi
舊 2014-08-17, 09:45 AM #3
回應時引用此文章
NTC_TW_IT離線中  
NTC_TW_IT
Regular Member
 

加入日期: Jul 2014
文章: 89
還是你要這個?
. ./xxxx.sh
這樣你的參數會被帶進去當下的環境喔
.等同source,效果一樣
記得~~你的script內不可以下exit
如果硬要做"離開動作時",要用kill -INT $$
舊 2014-08-17, 09:50 AM #4
回應時引用此文章
NTC_TW_IT離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是02:41 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。