作者Arim (Arim5566)
看板Linux
標題[問題] 關於shell切換的問題
時間Fri Mar 30 13:04:23 2012
各位好
想請問一下
我有一個test.sh
其中test.sh的第1行有#!/bin/bash來表示我要切換到bash來執行
如果我的shell預設的是/bin/tcsh
用./test.sh #用tcsh shell去執行,執行過程中切換到bash執行
然後再換成 sh ./test.sh #用sh shell去執行,執行過程中切換到bash執行
這兩種方式都是用bash shell去執行程式碼
但是結果卻不一樣...
想請問為什麼會這樣?
我的程式碼如下:
#!/bin/bash
j=0
read -p "number" num
number[$j]="$num"
用sh test.sh 會出現 number[0]=5: not found #可是我第1行有#!/bin/bash...
用./test.sh則執行結果正常 #都是切換到bash 為什麼這一行就正常?
另外想請教的是
似乎tcsh跟sh都不支援這樣的陣列寫法
再網路上看到的幾乎都是bash的寫法
看到這篇
http://yuanann.pixnet.net/blog/post/14988564-shell_script-%3Aarray-
照他的寫法寫也沒辦法用sh執行阿...一樣出現not found
請問有什麼寫法可以支援sh或tcsh呢?
謝謝
--
~宅男的四個徵兆~
∠□ ○ ! * \○/ ★ (○ ?
╦╦└□ " ○□═ □ □>
║║√√ ╦══╦ ∥ |\
一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.63.98.165
※ 編輯: Arim 來自: 61.63.98.165 (03/30 13:05)
→ kdjf:./script是讓作業系統自己選要用哪一個shell,在這裡是bash 03/30 13:07
→ kdjf:sh script你就直接選用/bin/sh來跑了,不會看#!那一行 03/30 13:07
→ Arim:原來如此 03/30 13:09
→ Arim:所以用./script的話 就會看#!那一行嘛? 03/30 13:10
→ kdjf:是啊 03/30 13:11
→ Arim:那請問一下 如果我在sh用array的話 要怎麼使用呢? 03/30 13:12
→ kdjf:c shell系例和 bourne shell不太可以相通 03/30 13:14
→ kdjf:sh沒有array, 頂多是把a1, a2, a3, a4之類的變數當array用 03/30 13:16
→ Arim:Thanks a lot 03/30 13:52
推 rehon:sh不一定等於bash 像ubuntu的sh是dash 03/30 14:08