成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

2013年5月編程語言排行榜:UNIX下的Bash

原創
開發
2013年5月9日,Tiobe公司發布新一期編程語言排行榜。新一期榜單前10位沒有太多的變化,只是Objective-C與C++,Ruby與JavsScript在互相交換位置罷了。今天我們要關注的是排在TOP 20后半部的一門語言——Bash。

【51CTO獨家特稿】2013年5月9日,Tiobe公司發布新一期編程語言排行榜。新一期榜單前10位沒有太多的變化,只是Objective-C與C++,Ruby與JavsScript在互相交換位置罷了。今天我們要關注的是排在TOP 20后半部的一門語言——Bash。

大家先請看本期TOP20榜單

從2013年4月的編程語言排行榜我們驚異的發現Bash這門UNIX下的殼語言,竟然有了飛速的上升。從第34位最高上升到第13位。究竟這門語言有什么獨特之處?

Bash語言2013年以來的增長勢頭

Bash的誕生

Bash這個單詞的來源十分晦澀,它的名字是一系列縮寫:Bourne-Again SHell — 這是關于Bourne shell(sh)的一個雙關語(Bourne again / born again)。

[[72277]]

Bash語言之父Stephen R. Bourne

Bash是大多數Linux系統以及Mac OS X v10.4默認的shell,它能運行于大多數Unix風格的操作系統之上,甚至被移植到了Microsoft Windows上的Cygwin系統中,以實現windows的POSIX虛擬接口。此外,它也被DJGPP項目移植到了MS-DOS上。

Bash是Linux的敲門磚,如果不懂Bash那其他東西就不用學習了。Linux透過終端下達指令,都是通過Bash來執行。

Bash語法

用vi編輯器編輯一個hello文件如下:

  1. #!/bin/bash  
  2. # This is a very simple example 
  3. echo Hello World 

這樣最簡單的一個 BASH 程序就編寫完了。這里有幾個問題需要說明一下:

一,第一行的 #! 是什么意思

二,第一行的 /bin/bash 又是什么意思

三,第二行是注釋嗎 

四,echo 語句

如何執行該程序呢?有兩種方法:一種是顯式制定 BASH 去執行:

$ bash hello 或$ sh hello(這里 sh 是指向 bash 的一個鏈接,“lrwxrwxrwx 1 root root 4 Aug 20 05:41 /bin/sh -> bash”)

或者可以先將 hello 文件改為可以執行的文件,然后直接運行它,此時由于 hello 文件第一行的 "#! /bin/bash" 的作用,系統會自動用/bin/bash 程序去解釋執行 hello 文件的:

  1. $ chmod u+x hello 
  2. $ ./hello 

此處沒有直接 “$ hello”是因為當前目錄不是當前用戶可執行文件的默認目錄,而將當前目錄“.”設為默認目錄是一個不安全的設置。

需要注意的是,BASH 程序被執行后,實際上 Linux 系統是另外開設了一個進程來運行的。

Bash命令行參數

 

在使用wget的時候,我喜歡加上一個-c的參數,這樣可以讓wget啟用斷點續傳功能。這里的-c就是一個命令行參數。

在寫c語言的時候,我們使用字符串數組存儲命令行參數,像我們所熟悉的argv[]。當然我們也需要命令行參數的個數,這存儲在名為argc的整型變量中。argc和argv是約定俗成的名稱,當然你可以使用自己的名稱作為main函數的形參。

在編寫Bash腳本的時候,也同樣可以使用命令行參數。在Bash函數中也可以使用參數,特殊的是,Bash中的函數是沒有參數列表的,例如function foo

這樣便完成了一個函數頭的定義,但是沒有任何的形參名稱,這是由于Bash中特殊的參數傳遞方法所致。

這里需要說明的是,在Bash編程中命令行參數和函數的形參都采用統一的規則。

Bash的函數規則

在Bash中,所有變量在賦值是賦值號左側直接寫變量名。而在引用變量的值時,變量名的左側需要加上$符號。寫過PHP腳本可能對此深有印象,不過PHP是賦值和引用都要寫。

Bash的參數是按照位置傳遞的,而且自動給出變量名稱,例如$1就表示第一個參數,當然$2就是第二個參數,參數之間用空格區分。這樣你可以順序寫到$n(n表示一個正整數),有幾個參數都可以按照順序引用。

$0表示當前運行命令的名稱,這個其實是特殊的參數,但是往往很少用到。

如果你想得到參數的個數,它保存在一個特殊名稱的變量里,叫做$#。

$*和$@表示所有的參數,具體區別和其他一些特殊參數請見這里。

注:后面我們會用到一個$?參數,這表示上一條獨立命令運行的結果。我們才c語言寫程序的時候,常常以return 0作為程序正常退出的標志,這個0就被返回給Bash,而$?可以引用到上一個程序運行的結果。還記得Bash函數的參數和命令行參數是相同的嗎?如果剛剛執行完一個Bash函數,$?里就保存著這個函數的運行結果,即return的值。

 

Bash學習資料(繁體版)http://linux.vbird.org/linux_basic/0320bash.php#bash

Bash相關資源下載:http://www.gnu.org/software/bash/

#p#

前10名編程語言走勢圖

 

20到50名語言排行

Position Programming Language Ratings
21 MATLAB 0.591%
22 SAS 0.587%
23 Ada 0.583%
24 R 0.543%
25 ABAP 0.501%
26 COBOL 0.458%
27 Fortran 0.419%
28 Scheme 0.396%
29 Prolog 0.326%
30 Haskell 0.323%
31 Erlang 0.315%
32 Common Lisp 0.307%
33 Scratch 0.303%
34 D 0.301%
35 Scala 0.300%
36 Logo 0.282%
37 NXT-G 0.243%
38 F# 0.240%
39 Smalltalk 0.237%
40 APL 0.226%
41 Forth 0.220%
42 ActionScript 0.204%
43 ML 0.204%
44 RPG (OS/400) 0.178%
45 Awk 0.162%
46 Tcl 0.152%
47 PL/I 0.149%
48 LabVIEW 0.138%
49 Ladder Logic 0.137%
50 JScript.NET 0.136%

 

下面是第50到100的編程語言排名

(Visual) FoxPro, ABC, Agilent VEE, Algol, Alice, Apex, ATLAS, AutoLISP, bc, BlitzMax, C shell, CFML, CL (OS/400), Clarion, Clipper, Clojure, Dart, Dylan, Eiffel, Emacs Lisp, Fantom, Gambas, Go, Groovy, Heron, Icon, IDL, Informix-4GL, J, JavaFX Script, Lasso, LPC, MUMPS, Oberon, OCaml, Occam, OpenCL, Oz, Pike, PowerShell, REXX, S, sed, SPARK, thinBasic, VBScript, VHDL, WebDNA, xBase, XSLT

【編輯推薦】

 

責任編輯:彭凡 來源: 51CTO
相關推薦

2013-07-30 10:00:36

RedMonk編程語言排行榜

2013-05-13 11:01:51

IT技術周刊

2013-01-06 01:58:00

編程語言排行

2013-03-11 16:10:20

2013-03-11 16:16:13

2013-11-11 11:00:39

編程語言排行榜

2013-07-09 10:58:22

編程語言排行榜語言排行

2023-06-09 15:39:40

編程語言Python

2019-07-23 14:14:59

編程語言JavaPython

2020-02-14 09:19:12

編程語言JavaPython

2021-09-23 10:50:42

編程語言Python排行

2021-07-07 05:42:24

編程語言開發

2013-06-09 15:40:04

語言排行榜JavaScript

2013-04-09 09:59:59

編程語言編程語言排行榜

2013-04-15 10:00:51

IT技術周刊

2015-07-07 10:52:46

RedMonk編程語言

2010-05-17 09:04:50

動態語言

2013-12-09 10:16:47

Transact-SQ語言排行榜

2020-03-07 22:01:58

編程語言JavaPython

2013-08-12 09:38:22

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 81精品国产乱码久久久久久 | 中文字幕一区二区三区四区五区 | 日韩在线观看网站 | 精品小视频 | 久久精品视频91 | 麻豆91精品91久久久 | 久久久久亚洲 | 欧美一区二区三区视频 | 青青草视频网站 | 亚洲国产一区二区视频 | 一区二区三区视频 | 欧美日韩国产不卡 | 日日摸夜夜添夜夜添特色大片 | 在线观看成人小视频 | 日本一区二区在线视频 | 日韩一级 | 国产日韩欧美一区 | 欧美a区 | 国产一区不卡 | 久久国产精品偷 | av入口| 日本黄色大片免费 | 91 在线| 久久精品99 | 日韩精品久久久 | 天天成人综合网 | 国产精品视频免费观看 | 亚洲a一区二区 | 欧美激情综合网 | 精品免费国产一区二区三区四区 | 欧美久久久久久久久中文字幕 | 欧洲精品久久久久毛片完整版 | 亚洲精品一区二区在线观看 | 久久综合伊人一区二区三 | 日韩在线观看 | 精品91 | 在线视频一区二区 | 日韩av一区二区在线观看 | 成人免费区一区二区三区 | 亚洲精品福利视频 | 日韩视频区 |