linux 下 shell 編程(菜鳥筆記)

來源:互聯網
上載者:User

一個簡單的例子:

#!/bin/bashecho "What's your favourite star?"select var in "Leehom" "Vae" "Jay" "Jolin"; dobreak;doneecho "You have selected $var"

運行結果:

root@ubuntu:~# ./star.shWhat's your favourite star?1) Leehom2) Vae3) Jay4) Jolin#? 1You have selected Leehomroot@ubuntu:~# 

開始 , 按照網上寫的是

#!/bin/sh

然後提示 

select: not found
Syntax error: "done" unexpected

然後,網上說,sh不一定指向bash

bin/sh 是一個軟串連,在windows系統中相當於捷徑,linux系統的軟串連的指向不一定是bash,如果軟串連指向的是bin/bash那麼,bin/sh和bin/bash是一樣的,但如果你的bin/sh指向的是bin/csh或者bin/ksh那麼bin/sh與bin/bash是就是一樣的了。

改為bash就OK 了~~

==========================================速度來科普==============================

原文來自:http://www.cnblogs.com/liehuzuo/archive/2012/05/08/2490249.html

linux的shell編程中#!/bin/sh和$bash是什麼意思

#! /bin/sh 是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面根的是此解釋此指令碼的shell的路徑。

$bash $表示系統提示符,$ 表示此使用者為普通使用者,超級使用者的提示符是#。

bash是shell的一種,是linux下最常用的一種shell。

$bash的意思是執行一個子shell,此子shell為bash。

 

要注意,在每個指令碼的開頭都使用"#!",這意味著告訴你的系統這個檔案的執行需要指定一個解 釋器.#!實際上是一個2位元組[1]的魔法數字,這是指定一個檔案類型的特殊標記, 換句話說, 在 這種情況下,指的就是一個可執行檔指令碼(鍵入man magic來獲得關於這個迷人話題的更多詳細 資訊).在#!之後接著是一個路徑名.這個路徑名指定了一個解釋指令碼中命令的程式,這個程式可 以是shell,程式語言或者是任意一個通用程式.這個指定的程式從頭開始解釋並且執行指令碼中 的命令(從#!行下邊的一行開始),忽略注釋.[2]
如: 1 #!/bin/sh 2 #!/bin/bash 3 #!/usr/bin/perl 4 #!/usr/bin/tcl 5 #!/bin/sed -f 6 #!/usr/awk -f

注意: #! 後邊給出的路徑名必須是正確的,否則將會出現一個錯誤訊息,通常是 "Command not found",這將是你運行這個指令碼時所得到的唯一結果.

如果在指令碼的裡邊還有一個#!行,那麼bash將把它認為是一個一般的注釋行.

====================================================================================================

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.