Linux - Shell程式設計基本文法

來源:互聯網
上載者:User

標籤:命令   shell   顯示   字元   方法   

使用雙引號的字元

雙引號是Shell的重要組成部分

$ echo Hello        World Hello World $ echo "Hello     World" Hello     World

如何顯示: Hello “World”
以下命令可以嗎?$ echo “Hello “World””
正確方法:echo “Hello \”World\””

條件測試

測試命令
test expression 或 [ expression ]
test命令支援的條件測試
字串比較
算術比較
與檔案有關的條件測試
邏輯操作

str1 = "abc"if [ $str = "abc" ]; then  echo "The strings are equal"else  echo "The strings are not equal“ fi
 mkdir temp  if [ -d temp ]; then  echo "temp is a directory" fi
條件陳述式
形式if [ expression ]then    statementselif [ expression ]then    statementselif …else    statementsfi緊湊形式; (同一行上多個命令的分隔字元)

case語句
當執行append時,有多少種可能的情況出現?

#!/bin/sh#指令碼名: appendcase $#   1) cat >> $1 ;;  2) cat >> $2 < $1 ;;  *) echo ‘usage: $0 [fromFile] toFile‘ ;;esac
No parameter or more than 2Only 1 parameter & the file existOnly 1 parameter & the file not existBoth file exist1st exist; 2nd not exist2nd exist; 1st not existBoth files not exist
select語句
形式select item in itemlistdo    statementsdone作用產生菜單列表
舉例:一個簡單的菜單選擇程式#!/bin/shclearselect item in Continue Finishdo    case “$item” in        Continue) ;;        Finish) break ;;        *) echo “Wrong choice! Please select again!” ;;    esacdoneQuestion: 用while語句類比?
命令組合語句
分號串聯command1; command2; …條件組合AND命令表         格式:statement1 && statement2 && statement3 && …OR命令表         格式:statement1 || statement2 || statement3 || …
函數調用
形式func(){    statements}局部變數local關鍵字函數的調用func para1 para2 …傳回值return
yesno(){    msg=“$1”    def=“$2”       while true; do        echo” ”        echo “$msg”        read answer        if [ “$answer” ]; then        case “$answer” in    y|Y|yes|YES)        return 0        ;;    n|N|no|NO)        return 1        ;;    *)        echo “ ”        echo “ERROR: Invalid response, expected \”yes\” or \”no\”.”        continue        ;;esac        else          return $def        fi     done}
調用函數yesnoif yesno “Continue installation? [n]” 1 ; then    :else    exit 1fi
雜項命令

break: 從for/while/until迴圈退出
continue: 跳到下一個迴圈繼續執行
exit n: 以退出碼”n”退出指令碼運行
return: 函數返回
export: 將變數匯出到shell,使之成為shell環境變數
set: 為shell設定參數變數
unset: 從環境中刪除變數或函數
trap: 指定在收到作業系統訊號後執行的動作
“:”(冒號命令): 空命令
“.”(句點命令)或source: 在當前shell中執行命令

Shell應用舉例

編寫一個指令碼,實現對Linux系統中的使用者管理,具體功能要求如下
該指令碼添加一個新組為class1,然後添加屬於這個組的30個使用者,使用者名稱的形式為stuxx(其中xx從01到30)
關鍵命令
groupadd
useradd
mkdir
chown
chgrp

#!/bin/sh i=1groupadd class1while [ $i -le 30 ]doif [ $i -le 9 ] ;thenusername=stu0${i}elseusername=stu${i}fiuseradd $username mkdir /home/$usernamechown -r $username /home/$usernamechgrp -r class1 /home/$username i=$(($i+1))done

Linux - Shell程式設計基本文法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.