2015-02-24 29 views
0

喜我做以下步驟手動Ubuntu的外殼腳本打開多個選項卡,負載的bashrc文件

  1. 開端子(負荷〜/ .bashrc中)
  2. 開6個標籤
  3. 集爲每個標籤的標題
  4. 源libray文件source test.sh tab1命令與每個標籤不同的參數。
  5. 運行測試(./run.sh

我試圖自動執行上述步驟,使用的gnome-terminal uing殼腳本(使用下面的鏈接), https://askubuntu.com/questions/500357/opening-multiple-terminal-tabs-and-running-command 突片打開,但標題不保存它被複位和命令source ~/test.sh tab1給錯誤「沒有這樣的文件或目錄」

代碼:

#!/bin/bash 

cd /media/Extra/Project 

tab=" --tab-with-profile=Default" 
options=(--tab --title=Terminal) 

cmds[1]="'source ~/test_1.sh; ./run.sh'" 
titles[1]="test_1" 

cmds[2]="'source ~/test_2.sh; ./run.sh'" 
titles[2]="test_2" 


cmds[3]="'source ~/test_3.sh; ./run.sh'" 
titles[3]="test_3" 

cmds[4]="'source ~/test_4.sh; ./run.sh'" 
titles[4]="test_4" 

cmds[5]="'source ~/test_5.sh; ./run.sh'" 
titles[5]="test_5" 

cmds[6]="'source ~/test_6.sh; ./run.sh'" 
titles[6]="test_6" 

for i in 1 2 3 4 5 6; do 
    options+=($tab --title="${titles[i]}" -e "bash -ic \"${cmds[i]} ; bash\"")  
done 

gnome-terminal "${options[@]}" 

exit 0 
+0

錯誤信息隱約暗示你正在使用'sh',而不是'bash',當你使用一個bashism因此收到錯誤消息。無論如何,請向我們展示您的劇本。 – tripleee 2015-02-24 12:27:29

+0

用腳本更新了這個問題 – 2015-02-24 12:53:56

+0

包括精確的錯誤信息也是有幫助的,但我想我有一個答案給你。 – tripleee 2015-02-24 13:04:37

回答

1

雙引號內的單引號引起整個字符串被解釋爲命令,空格的名稱和所有,這當然不工作。刪除它們,你的腳本應該工作(儘管仍然有點笨拙)。

參見http://mywiki.wooledge.org/BashFAQ/050

+0

無論如何,如果腳本確實是這樣重複的,只需將循環中的所有內容都包含在內,並徹底擺脫陣列。 – tripleee 2015-02-24 13:06:22

+0

如果我們「刪除雙引號內的單引號」和「使用完整路徑源文件/ full/path/test.sh tab1」,感謝您的正常工作。正如candymanuu提到的那樣。 – 2015-02-27 04:09:23

+0

你並不需要一個完整的路徑,但是你不能在引號內使用〜/'。 – tripleee 2015-02-27 06:38:48

1

使用完整路徑

source /full/path/test.sh tab1 

,並告訴我們你的腳本一樣tripleee說