[問題] 關於shell切換的問題

看板Linux作者 (Arim5566)時間13年前 (2012/03/30 13:04), 編輯推噓1(109)
留言10則, 3人參與, 最新討論串1/1
各位好 想請問一下 我有一個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)

03/30 13:07, , 1F
./script是讓作業系統自己選要用哪一個shell,在這裡是bash
03/30 13:07, 1F

03/30 13:07, , 2F
sh script你就直接選用/bin/sh來跑了,不會看#!那一行
03/30 13:07, 2F

03/30 13:09, , 3F
原來如此
03/30 13:09, 3F

03/30 13:10, , 4F
所以用./script的話 就會看#!那一行嘛?
03/30 13:10, 4F

03/30 13:11, , 5F
是啊
03/30 13:11, 5F

03/30 13:12, , 6F
那請問一下 如果我在sh用array的話 要怎麼使用呢?
03/30 13:12, 6F

03/30 13:14, , 7F
c shell系例和 bourne shell不太可以相通
03/30 13:14, 7F

03/30 13:16, , 8F
sh沒有array, 頂多是把a1, a2, a3, a4之類的變數當array用
03/30 13:16, 8F

03/30 13:52, , 9F
Thanks a lot
03/30 13:52, 9F

03/30 14:08, , 10F
sh不一定等於bash 像ubuntu的sh是dash
03/30 14:08, 10F
文章代碼(AID): #1FTJxRP5 (Linux)