解釋幾條shell 語句
${0%/*} 什么意思?
----------------------------------------------------------------------
$0是位置參數,表示shell腳本或函數的自身名稱。
若運行shell腳本時帶路徑,為/home/user/*,那么$0也就是/home/user/*。
${0%/*} 表示去除最后一個 / (最小匹配)以及其后面的所有內容,即得到腳本的運行路徑,用此例子來說就是/home/user。
附:字符串的掐頭去尾
# 表示掐頭,% 表示去尾,
助記:鍵盤上 # 在 % 的前面,所以表示掐頭;% 在 # 的后面,所以表示去尾。
單個(#或%)表示最小匹配,雙個(##或%%)表示最大匹配。
也就是說,當匹配的有多種方案的時候,選擇匹配的最大長度還是最小長度。
platform_rules_main $@ #這一行什么意思
----------------------------------------------------------------------
$@ 用于列出所有腳本或函數參數
如果是寫在腳本主體語句中,表示列出所有腳本參數
如果是寫在函數中,表示列出所有函數參數
shell語言是什么啊
SHELL語言是指UNIX操作系統的命令語言,同時又是該命令語言的解釋程序的簡稱。
Shell本身是一個用C語言編寫的程序,它是用戶使用Unix/Linux的橋梁,用戶的大部分工作都是通過Shell完成的。Shell既是一種命令語言,又是一種程序設計語言。
作為命令語言,它交互式地解釋和執行用戶輸入的命令;作為程序設計語言,它定義了各種變量和參數,并提供了許多在高級語言中才具有的控制結構,包括循環和分支。 它雖然不是Unix/Linux系統內核的一部分,但它調用了系統核心的大部分功能來執行程序、建立文件并以并行的方式協調各個程序的運行。
因此,對于用戶來說,shell是最重要的實用程序,深入了解和熟練掌握shell的特性極其使用方法,是用好Unix/Linux系統的關鍵。 擴展資料: shell的語言的運行場景: Shell是各個UNIX系統之間通用的功能,并且經過了POSIX的標準化。
因此,Shell腳本只要“用心寫”一次,即可應用到很多系統上。同時,它運行于高于系統內核的環境,能夠簡單地執行一些文件系統級的高級操作。
因此,之所以要使用Shell腳本是基于: 1、簡單性:Shell是一個高級語言,處于內核外層環境;通過它,你可以簡潔地表達復雜的操作。 2、可移植性:使用POSIX所定義的功能,可以做到腳本無須修改就可在不同的系統上執行。
3、開發容易:可以在短時間內完成一個功能強大又適用的腳本。 參考資料來源:百度百科-SHELL語言。
shell是什么語言
在計算機科學中,Shell俗稱殼(用來區別于核),是指“提供使用者使用界面”的軟件(命令解析器)。
它類似于DOS下的*。它接收用戶命令,然后調用相應的應用程序。
同時它又是一種程序設計語言。作為命令語言,它交互式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程序設計語言,它定義了各種變量和參數,并提供了許多在高階語言中才具有的控制結構,包括循環和分支。
在C++中,Shell是希爾排序的名稱。 基本上shell分兩大類: 一:圖形界面shell(Graphical User Interface shell 即 GUI shell) 例如:應用最為廣泛的 Windows Explorer (微軟的windows系列制作系統),還有也包括廣為人知的 Linux shell,其中linux shell 包括 X windows manger (BlackBox和FluxBox),以及功能更強大的CDE、GNOME、KDE、 XFCE。
二:命令行式shell(Command Line Interface shell ,即CLI shell) 例如: bash / sh / ksh / csh(Unix/linux 系統) *(MS-DOS 系統) * / 命令提示字符(Windows NT 系統) Windows PowerShell(支援 .NET Framework 技術的 Windows NT 系統) 傳統意義上的shell指的是命令行式的shell,以后如果不特別注明,shell是指命令行式的shell。 文字操作系統與外部最主要的接口就叫做shell。
shell是操作系統最外面的一層。shell管理你與操作系統之間的交互:等待你輸入,向操作系統解釋你的輸入,并且處理各種各樣的操作系統的輸出結果。
shell提供了你與操作系統之間通訊的方式。這種通訊可以以交互方式(從鍵盤輸入,并且可以立即得到響應),或者以shell script(非交互)方式執行。
shell script是放在文件中的一串shell和操作系統命令,它們可以被重復使用。本質上,shell script是命令行命令簡單的組合到一個文件里面。
Shell基本上是一個命令解釋器,類似于DOS下的*。它接收用戶命令(如ls等),然后調用相應的應用程序。
較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。 交互式shell和非交互式shell 交互式模式就是shell等待你的輸入,并且執行你提交的命令。
這種模式被稱作交互式是因為shell與用戶進行交互。這種模式也是大多數用戶非常熟悉的:登錄、執行一些命令、簽退。
當你簽退后,shell也終止了。 shell也可以運行在另外一種模式:非交互式模式。
在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,并且執行它們。當它讀到文件的結尾,shell也就終止了。
shell的類型 在UNIX中主要有兩大類shell Bourne shell (包括 sh, ksh, and bash) Bourne shell ( sh) Korn shell ( ksh) Bourne Again shell ( bash) POSIX shell ( sh) C shell (包括 csh and tcsh) C shell ( csh) TENEX/TOPS C shell ( tcsh) Bourne Shell 首個重要的標準Unix Shell是1970年底在V7 Unix(AT&T第7版)中引入的,并且以它的創始科技部基礎條件平臺“國家氣象網絡計算應用節點建設”(2004DKA50730)資助者Stephen Bourne的名字命名。Bourne shell 是一個交換式的命令解釋器和命令編程語言。
Bourne shell 可以運行為login shell或者login shell的子shell(subshell)。只有login命令可以調用Bourne shell作為一個login shell。
此時,shell先讀取/etc/profile文件和$HOME/.profile文件。/etc/profile文件為所有的用戶定制環境,$HOME/.profile文件為本用戶定制環境。
最后,shell會等待讀取你的輸入。 C Shell Bill Joy于20世紀80年代早期,在Berkeley的加利福尼亞大學開發了C shell。
它主要是為了讓用戶更容易的使用交互式功能,并把ALGOL風格的語法結構變成了C語言風格。它新增了命令歷史、別名、文件名替換、作業控制等功能。
Korn Shell 有很長一段時間,只有兩類shell供人們選擇,Bourne shell用來編程,C shell用來交互。為了改變這種狀況,AT&T的bell實驗室David Korn開發了Korn shell。
ksh結合了所有的C shell的交互式特性,并融入了Bourne shell的語法。因此,Korn shell廣受用戶的歡迎。
它還新增了數學計算,進程協作(coprocess)、行內編輯(inline editing)等功能。Korn Shell 是一個交互式的命令解釋器和命令編程語言.它符合POSIX——一個操作系統的國際標準.POSIX不是一個操作系統,而是一個目標在于應用程序的移植性的標準——在源程序一級跨越多種平臺。
Bourne Again Shell (bash) bash是GNU計劃的一部分,用來替代Bourne shell。它用于基于GNU的系統如Linux.大多數的Linux(Red Hat, Slackware, Caldera)都以bash作為缺省的shell,并且運行sh時,其實調用的是bash。
POSIX Shell POSIX shell 是Korn shell的一個變種. 當前提供POSIX shell的最大賣主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh. 各主要操作系統下缺省的shell: AIX 下是Korn Shell. Solaris缺省的是Bourne shell. FreeBSD缺省的是C shell HP-UX缺省的是POSIX shell. Linux是Bourne Again shell. Windows PowerShell 是一種新的交互式的命令行和基于任務腳本編寫技術,它使信息技術 (IT) 管理員能夠全面地自動操作和控制系統管理任務,從而提高了管理員的生。
linuxshell腳本wak語句中awk'BEGIN{FS="'"'"'";RS="\n"}{for(i=2;
FS表示操作的時候以什么為分割符RS表示記錄分割符(Record Separator)即RS表示的是awk操作最小單位的邊界,而FS是這個最小單位中分割的符號例如:101,John Doe:102,Jason Smith:103,Raj Reddy如果不指定RS,指定FS為“,”,那么awk將101作為第一列,剩下的全部為第二列,如果指定RS=":",那么awk就會將內容作為三“行”,第一列包括101,102和103,第二列包括John Doe,Jason Smith和Raj Reddy。