酷!學園

技術討論區 => 程式討論版 => 主題作者是: mjabe 於 2004-02-22 02:38

主題: 請問一個shell的寫法 A=A_$i echo "$A" 行嗎
作者: mjabe2004-02-22 02:38
假設有一文字檔:
/root> more text

A_0=0
A_1=1
A_2=2
A_3=3
/root>


如何用 while loop 將 (A_0, A_1, A_2, A_3) 的
值(0, 1, 2, 3) 列印出來
---------------------------------------
#!/bins/sh
. text
i=0
while [ $i -lt 4 ]; do

 # how to do ??
 # 可以用下面這個類似的語法作出來嗎?
 # x=A_$i
 # echo "$X"
 # (錯誤的結果)
 let i=$i+1

done
---------------------------------------
謝謝
主題: 請問一個shell的寫法 A=A_$i echo "$A" 行嗎
作者: netman2004-02-22 13:17
x 是小寫還是大寫?
主題: 請問一個shell的寫法 A=A_$i echo "$A" 行嗎
作者: mjabe2004-02-22 15:03
引述: "netman"
x 是小寫還是大寫?


謝謝你的回答
兩個 x 是同一個變數

---------------------------------------
#!/bins/sh
. text
i=0
while [ $i -lt 4 ]; do

 x=A_$i
 echo "$x"
# (錯誤的結果)
 let i=$i+1

done
-----------------------------------------
主題: 請問一個shell的寫法 A=A_$i echo "$A" 行嗎
作者: netman2004-02-22 16:07
下面是我執行你的 script 的結果...
代碼: [選擇]
[netman@study-area tmp]$ cat 1.sh
#!/bin/bash
. text
i=0
while [ $i -lt 4 ]; do

x=A_$i
echo "$x"
let i=$i+1

done

[netman@study-area tmp]$ ./1.sh
./1.sh: text: No such file or directory
A_0
A_1
A_2
A_3
主題: 請問一個shell的寫法 A=A_$i echo "$A" 行嗎
作者: mjabe2004-02-22 20:45
引述: "netman"
下面是我執行你的 script 的結果...
代碼: [選擇]
[netman@study-area tmp]$ cat 1.sh
#!/bin/bash
. text
i=0
while [ $i -lt 4 ]; do

x=A_$i
echo "$x"
let i=$i+1

done

[netman@study-area tmp]$ ./1.sh
./1.sh: text: No such file or directory
A_0
A_1
A_2
A_3


謝謝你的回答
程式的確會跑出這樣的結果
但是這並不是我想要的結果
假設text file 的內容如下:
---------------
A_0=9
A_1=8
A_2=7
A_3=6
---------------
那我可以用下面類似的語法(結果是錯的, 錯誤的式範)
就像 php 一樣可以動態產生變數
------------------------------------
#!/bin/sh
. ./text
i=0
while [ $i -lt 4 ]; do

x=A_$i
echo "$x"
let i=$i+1

done
-------------------------------------
讓程式可以輸出
9
8
7
6
而不是輸出
A_0
A_1
A_2
A_3
看過了 O'REILLY 的那本"bash shell入門"
也沒有看到類似的講解
不知道 shell 可不可以作到這樣的效果
或是有什麼比較漂亮的寫法(要用shell script)
主題: 請問一個shell的寫法 A=A_$i echo "$A" 行嗎
作者: netman2004-02-22 22:28
請將
x=A_$i
改為:
x=$A_$i