2013-12-18 82 views
0

快速的問題,我能做到這一點?:嘗試使用,同時讀取循環來保存結果到一個數組

while IFS=: read menu script 
do 
    echo "$x. $menu" 
    command[x]="$script" 
    let x++ 
done < file.txt 

讀取每行兩個字符串從一個文件,打印一個,另一個保存到一個數組。 。

file.txt的是這樣的:

File Operations:~/scripts/project/File_Operations.sh 
Directory Operations:~/scripts/project/Directory_Operations.sh 
Process Management:~/scripts/project/Process_Management.sh 
Search Operations:~/scripts/project/Search_Operations.sh 

回答

0

期待權。 2件事。

  • 您需要初始化x。 x=0
  • 當您使用x作爲下標時,它需要$。即command[$x]="$script"
  • 並且在引用命令數組時忘記了{}。例如${command[0]}
+0

我已經初始化x = 1,當我改變到x = 0它工作 謝謝你的快速反應:) – Aukin

+0

'command [x] = $ script'對我來說工作正常。在'[]'裏面,你可以使用任何算術表達式。 – choroba

0

什麼殼您正在使用?在bash對我的作品,我只是在前面加上下面兩行腳本:

#!/bin/bash 
x=0 

不設置$x爲0,用戶呈現

. File Operations 
1. Directory Operations 
2. Process Management 
3. Search Operations 
+0

感謝您快速回答! 我的問題不是回聲,但它從來沒有寫入任何數組,但這可能是因爲我已經初始化x = 1,所以它永遠不會到數組的第一個索引 當我改變到x = 0它的工作完美:) – Aukin

相關問題