亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

shell編程筆記1

2024-06-28 13:23:11
字體:
來源:轉載
供稿:網友
shell編程筆記1

參考文章:1 http://blog.csdn.net/wuwenxiang91322/article/details/9259877 通過chmod改變文件權限

補充知識

linux文件的三種身份和四種權限,三種身份分別為:

  1. u:文件的擁有者
  2. g:文件所屬的群組
  3. o:其他用戶

  對于每個身份,又有四種權限,分別為:

  1. r:讀取文件的權限(read)
  2. w:寫入文件的權限(write)
  3. x:執行的權限(execute)
  4. s:特殊權限

 Linux中有兩種表示文件權限的方式,分別為數字以及符號表示方式。

3 chmod以數字形式改變文件權限?。篶hmod 755 test.sh?。ń忉專鹤x 寫 執行 權值依次是:4?。病。薄《罚担狄来未碛脩簟∮脩艚M 其他用戶對應的權   限,將755換算成 字符形式,為rwxr-xr-x,也就是說文件的擁有者、所屬群組 以及其他用戶都可以讀取與運行test.sh這個文件,但是只有擁有者自己可以寫入這個文   件,也就是其他人無權修改test.sh這個文件。(當然 root用戶無此限制,想改誰就該誰,這也是一個體現root賬號至高無上權力的體驗)

 chmod以字符形式改變文件權限 :

chmod u+x test.sh  只給擁有者加上可執行權限

chmod g+x test.sh  只給群組身份加上可執行權限

chmod o+x test.sh  只給其他人身份加上可執行權限

chmod a+x test.sh  給所有人都賦予x權限

chmod o-x test.sh  如果要去掉某個身份的某個權限,只需要將+變為-即可,例如去除其他人身份的可執行權限:

shell 腳本的編寫流程如下:

    1. 在編輯器中編輯 shell 腳本文件。
    2. 將該文件保存為“*.sh”文件。
    3. 增加腳本文件的可執行權限?! ∪纾簊udo chmod a+x test.sh(因為一般用戶沒有shell的執行權限)
    4. 使用相對路徑名執行腳本文件。

編寫shell的習慣:一般情況下,最后在文件打開始寫上注釋.第一,因為shell有多個版本,在不同的linux操作系統下,shell是不 同的.比如,在Ubuntu下是bash,所以首先表明編寫的是什么shell腳本,如果不知道,在終端中輸入echo $SHELL查看shell版 本.第二,寫上本shell腳本的注釋說明,即函數的目的,參數的意義.這其實和編寫其他編程語言是一樣的,便于別人了解自己所寫腳本打含義.

正文: 

一 變量

shell 語言中可以使用變量,不過這里的變量不同于其他的高級語言中的變量。shell 腳本中的變量在使用時并不需要提前定義,也就是說每一個變量都可以在程序員需要時就使用。因為大部分 Linux 命令使用的是小寫字母,而大多數的 shell 中的環境變量是使用大些字母表示的。因此,在 shell 腳本中出現的用戶自定義變量最好使用小寫字母,這樣可以很好地區別 shell 中的環境變量。可以在終端中輸入 set查看全部系統定義變量.使用 unset 命令可以刪除變量的賦值,使變量的值為空。如果用戶需要清除一個變量的值可以這樣做,其等效于將這個變量賦值為空。shell中腳本變量對大叫寫敏感的,這與linux以及很多高級編程語言一樣的.注釋使用"#"

  1. 聲明變量:如name="xiao ming"
  2. 使用變量:如:echo $name #echo 表示輸出,$表示取name 的值.
  3. 表達式求值: 方式1 應該使用 exPR 命令 expr 命令中可以使用數學運算符。例如,數字比較操作、整數運算操作或者邏輯操作等。方式2 在 shell 腳本中也可以使用雙括號代替 expr 命令計算表達式的值。其形式如下:$((表達式)) 如:  expr 3+2 與$((3+2))是一樣的
  4. shell 腳本中的變量很特別,因為在這里變量并不區分類型。這一點與 C 語言以及其他的一些編程語言完全不同,也容易使初學者感到困惑。本質上,shell 腳本中的變量都是字符串,在對變量的解釋上則依賴于 shell 腳本中的變量定義.
  5. 位置變量:在運行一個 shell 腳本時可以向腳本傳遞命令行參數,這些命令行參數可以在 shell 腳本內部被引用到。根據每一個命令參數的位置,在 shell 中可以使用$1 至$9 來表示。$0 表示當前執行進程的文件名,也就是程序的執行文件名。

二 退 出 狀 態

exit 命令用于結束一個 shell 腳本的運行,就像 C 語言中的調用“exit(0)”,或者在main 函數中“return 0;”一樣。shell 腳本在結束運行時也返回一個值,并且這個值會傳遞給調用腳本的父進程。這個父進程通常就是 shell,但是有些時候一些其他的用戶程序也會調用 shell 腳本。父進程接收到這個值(其實這個值作為子進程結束狀態的一部分)后,做下一步的處理.每個 shell 命令在結束執行時都會返回一個退出狀態碼。成功執行了該命令則返回 0;否則,不成功的命令將返回一個非零值。非零值通常都被解釋成一個錯誤碼,從慣例的角度來講返回 0 代表正常。如果返回一個非零值,則表示進程出現了異常。這時候需要根據退出狀態碼找到進程退出的原因。通常來講程序員和系統管理員之間應當約定一個退出狀態碼的協議,這樣便于系統管理員幫助程序員發現錯誤。注意:退出狀態碼必須是十進制數,范圍必須是 0 至 255。當腳本以不帶參數的 exit 命令來結束時,腳本的退出狀態碼就由腳本中最后執行的命令來決定。也就是 exit 之前的命令。下面實例演示了 shell 腳本的退出狀態碼的使用,該腳本調用一個用戶編寫的簡單程序。讀者可以對比使用 exit 命令退出和不使用該命令退出的兩個版本的 shell 腳本的區別。

三 條 件 測 試

1 條件測試命令一般有兩種格式。1 test condition?。病 condition ] 注意:使用“[ ]”時,要在條件和“[ ]”之間加上空格。測試文件狀態的條件表達式很多,但是最常用幾個如下所示。-d 文件是否為目錄;-s 文件是否長度大于 0;-f 文件是否是普通文件;-L 文件是否是符號鏈接;-u 文件是否設置了 suid 位;-r 文件是否可讀;-w 文件是否可寫;-x 文件是否可執行。當條件測試的返回狀態是 0 時,則表示測試成功,否則失敗。下面實例測試 test.txt 文件是否可讀、可寫和可執行的。該腳本中使用兩種條件測試的方法,讀者可以對照理解。(1)在 vi 編輯器中編輯該腳本如下:#!/bin/sh# file.sh 測試 test.txt 文件是否可讀可寫可執行#測試 test.txt 文件的讀權限,使用“[ ]”的方法[ -r test.txt ]echo $?#測試 test.txt 文件的寫權限,使用“[ ]”的方法[ -w test.txt ]echo $?#測試 test.txt 文件的執行權限,使用“[ ]”的方法[ -x test.txt ]echo $?#測試 test.txt 文件的讀權限,使用“test 命令”的方法test -r test.txtecho $?#測試 test.txt 文件的寫權限,使用“test 命令”的方法test -w test.txtecho $?#測試 test.txt 文件的執行權限,使用“test 命令”的方法test -x test.txtecho $?exit 0(2)編寫好腳本后,增加 shell 腳本文件的可執行權限??梢允褂?chmod 命令增加 file.sh文件的可執行權限。$ chmod u+x file.sh(3)使用 ls 命令查看 test.txt 的權限信息。$ls –l test.txt-rw-r--r--1root0Feb704:50test.txt(4)在 shell 中運行該 shell 腳本如下:001001運行結果說明 test.txt 文件只有可讀寫的權限,但是沒有可執行的權限。

下面實例測試,傳入腳本的文件名的文件是否是普通文件、目錄文件和符號鏈接。該腳本使用位置變量作為文件名進行測試。(1)在 vi 編輯器中編輯該腳本如下:#!/bin/sh# test.sh 測試文件的種類#第一個文件是一個普通文件[ -f $1]echo $?#第二個文件是一個目錄文件[ -d $2]echo $?#第二個文件是一個符號鏈接[ -l $3]echo $?#運行的 shell 腳本本身也是一個普通文件[ -f $0]echo $?exit 0(2)編寫好腳本后,增加 shell 腳本文件的可執行權限??梢允褂?chmod 命令增加 test.sh文件的可執行權限。$ chmod u+x test.sh(3)使用 mkdir 命令創建一個目錄 dir。$mkdir dir(4)使用 symlink 命令創建一個符號鏈接。$symlink link test.txt(5)在 shell 中運行該 shell 腳本如下:$./test.sh test.txt dir link0000試驗結果說明每一步的測試都是成功的,每個文件的類型都和預期的一樣。測試時使用邏輯操作符與 C 語言類似,shell 腳本中同樣提供三種邏輯操作完成此功能。邏輯運算符通常和分支語句配合使用,實現程序執行流程的不同。-a 邏輯與,兩個操作數均為真,結果為真,否則為假。-o 邏輯或,兩個操作數一個為真,結果為真,否則為假。! 邏輯非,條件為假,結果為真,否則為假。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
裸体女人亚洲精品一区| 国产欧美精品在线播放| 精品视频久久久久久久| 日韩中文在线视频| 黑人巨大精品欧美一区二区三区| 欧美一级淫片aaaaaaa视频| 成人精品视频99在线观看免费| 日韩中文字在线| 亚洲精品一区二三区不卡| 2019日本中文字幕| 亚洲精品一区在线观看香蕉| 亚洲欧洲在线免费| 亚洲欧洲国产精品| 国产精品视频专区| 日本欧美一级片| 91人成网站www| 欧美电影在线观看完整版| 日韩在线精品视频| 国产一区二区日韩精品欧美精品| 日韩av手机在线| 久久久久久久久电影| 草民午夜欧美限制a级福利片| 中文字幕亚洲欧美一区二区三区| 91视频免费网站| 日韩最新免费不卡| 亚洲成人精品久久久| 欧美视频精品一区| 日本精品视频在线| 欧美中文字幕在线播放| 欧美日本高清视频| 亚洲天堂av电影| 亚洲香蕉成人av网站在线观看| 久久久久久久久爱| 久久夜色精品亚洲噜噜国产mv| 国产精品视频一区国模私拍| 日韩免费在线电影| 91大神福利视频在线| 国产日韩av在线| 欧美在线免费视频| 亚洲深夜福利网站| 日韩成人黄色av| 成人午夜在线影院| 亚洲专区国产精品| 国内精品久久久久久久| 中文字幕精品影院| 亚洲视频网站在线观看| 国产成人一区二区在线| 欧美日韩另类在线| 亚洲综合最新在线| 日韩成人在线视频网站| 91黑丝高跟在线| 国产精品视频大全| 国产精品青青在线观看爽香蕉| 国产综合久久久久| 日韩免费精品视频| 欧美午夜激情小视频| …久久精品99久久香蕉国产| 日韩福利视频在线观看| 日韩av在线看| 欧美黄色片在线观看| 精品久久久久久电影| 91chinesevideo永久地址| 国产精品一区av| 欧美激情免费观看| 91经典在线视频| 欧美日韩在线视频一区二区| 色哟哟亚洲精品一区二区| 欧美日韩一区二区免费在线观看| 国产精品极品美女粉嫩高清在线| 欧美丝袜美女中出在线| xvideos亚洲人网站| 国产精品高潮呻吟久久av野狼| 91久久精品美女高潮| 成人黄色生活片| 日本老师69xxx| 亚洲一区二区福利| 亚洲乱码一区二区| 亚洲美女激情视频| 欧美视频在线视频| 国产一区二区三区视频在线观看| 国产精自产拍久久久久久| 欧美日韩国产在线| 91亚洲精品视频| 中文字幕亚洲一区二区三区五十路| 国产噜噜噜噜噜久久久久久久久| 日韩国产精品视频| 欧美一级大片视频| 国产精品白丝jk喷水视频一区| 狠狠躁夜夜躁久久躁别揉| 亚洲亚裔videos黑人hd| 午夜精品福利视频| 久久精品精品电影网| 日韩精品在线观看一区二区| 日韩高清电影好看的电视剧电影| 国产精品丝袜久久久久久不卡| 日韩高清a**址| 亚洲欧美日韩高清| 91系列在线播放| 欧美成人性色生活仑片| 国产精品对白刺激| 国产精品第三页| 国产在线观看精品一区二区三区| 91超碰中文字幕久久精品| 久久亚洲精品一区| 国产欧美日韩免费看aⅴ视频| 中文字幕日韩欧美在线视频| 日韩在线观看免费av| 欧美亚洲国产精品| 欧美日韩激情网| 亚洲奶大毛多的老太婆| 国产精品国产三级国产aⅴ浪潮| 久久精品一区中文字幕| 欧美成人h版在线观看| 日韩av一区二区在线| 亚洲人成啪啪网站| 欧美黑人性视频| 欧美在线中文字幕| 亚洲成色777777女色窝| 日韩中文字幕在线视频播放| 97国产一区二区精品久久呦| 日韩欧美中文字幕在线播放| 成人午夜高潮视频| 性欧美xxxx交| 国产成人精彩在线视频九色| 亚洲精品91美女久久久久久久| 亚洲精品国产综合区久久久久久久| 国产一区二区三区精品久久久| 欧美激情视频网站| 欧美性xxxx极品hd欧美风情| 欧美在线视频观看免费网站| 成人网在线视频| 久久久久久12| 亚洲国产欧美一区二区丝袜黑人| 亚洲一级免费视频| 91国产精品91| 欧美性色视频在线| 国产一区玩具在线观看| 一区二区欧美亚洲| 日韩一区二区久久久| 91精品国产99久久久久久| 亚洲性无码av在线| 日韩av电影免费观看高清| 91久久精品国产91久久性色| 91精品综合久久久久久五月天| 在线性视频日韩欧美| 日韩高清欧美高清| 91精品国产777在线观看| 久久在精品线影院精品国产| 日韩精品视频免费专区在线播放| 91精品国产高清自在线| 日韩精品在线免费观看视频| 在线播放国产精品| 国产丝袜精品第一页| 在线观看久久久久久| 爽爽爽爽爽爽爽成人免费观看| 日韩资源在线观看| 2024亚洲男人天堂| 色诱女教师一区二区三区| 精品一区二区三区四区在线| 国产一区在线播放| 欧美中在线观看| 久久综合久久美利坚合众国| 亚洲精品v天堂中文字幕| 成人在线免费观看视视频|