看板 Linux 關於我們 聯絡資訊
各位好 想請問一下 我有一個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