设为首页 收藏本站
查看: 543|回复: 0

shell-script(command groups)

[复制链接]

尚未签到

发表于 2018-8-25 12:30:08 | 显示全部楼层 |阅读模式
  shell-script簡稱shell(這裡專指的linux下的script)
  關鍵字:test,if-else, fo-do-done,case
  shell-script的應用非常廣泛,各種領域都有shell-script的應用,這裡我們主要講講日常應用。
  關於執行,一般用source、 sh、  ./相對路徑/文件名、 /絕對路徑/文件名。這是一般常用的執行方式。
  首先學習shell-script的test,主要檢測系統上面文件或者文件的屬性。具體test的測試標誌和代表的意義如下:
  第一、關於文件類型的檢測。
  -e:文件是否存在。
  -f:文件存在是否為一般文件
  -d:文件存在是否為目錄
  -b:文件存在是否為塊設備(block device)
  -c:文件存在是否為字符設備(character device)
  -S:文件存在是否為Socket文件
  -p:文件存在是否為FIFO(pipe)文件
  -L:文件存在是否為一個連接文件(無論hard link or symbol link)
  第二、關於文件的權限檢測。
  -r:文件存在且具有可讀權限
  -w:文件存在且具有可寫權限
  -x:文件存在且具有可執行權限
  -u:文件存在且具有SUID屬性
  -g:文件存在且具有SGID屬性
  -k:文件存在且具有Sticky bit屬性
  -s:文件存在且為非空文件
  第三、兩個文件的比較
  -nt:(newer than)文件一比文件二新?
  -ot:(older than)文件一比文件二舊?
  -ef:文件一和文件二是否為同一文件,如hard link ,是否指向同一inode?
  第四、整數的比較
  -eq:值相等(equal)
  -ne:值不等(not equal)
  -gt:number1大於number2(greater than)
  -lt:number1小於number2(less than)
  -ge:number1大於等於number2(greater than or equal)
  -le:number1小於等於number2(less than or equal)
  第五、string的判斷
  test -z string:string為0?空為true
  test -n string:string為0?空為false
  test str1=str2:str1等於str2,為true
  test str1 != str2 :不等於,為true
  第六、多重判斷(也可成為邏輯判斷)
  -a:兩種狀況同時為true,則為true。eg:test -r file -a -x file,file既有可讀和可執行時,才為true。
  -o:任意一條為true,則為true。eg:test -r file -a -x file,file可讀或者可執行時都為true,當file同時不可讀,不可執行時才為false。
  !:邏輯非。
  利用[]可以省略test,兩者的效果一樣。但是在shell-script中使用[]時,[]兩邊一定要使用空格。還有就是[]裏面的變量,最好都用雙引號括起來,變量用單引號和雙引號括起來都可以。這點很重要。
  shell script 的default變量($0,$1,$2...),script內使用的特殊變量如下:
  $#:表示後面的參數個數, $4代表$#是4。
  $@:表示 "$1" "$2" "$3" ,每個變量是獨立的(用雙引號括起來)
  $*:表示 "$1 $2 $3"。
  其實$@和$*差不多,一般情況下直接使用或者記憶$@即可。
  使script參數偏移的指令shift,在script中加入shift後會使script的參數偏移。。
  下面學習if...then...fi,   if...then...else...fi,  if...then...elif...then... else...fi
  使用if條件判斷時,條件判斷使用的邏輯運算&&(and)和||(or)相當於test中的-a和-o參數。
  case...in...esac
  function功能:function name(){ 程序 }
  shell-script中的循環:有while...do...done, until...do...done(不定循環), while [ condition ] do programming done 當condition成立時開始循環,知道condition不成立終止循環,until [ condition ] do programming done, 當condition不成立時開始循環和while相反,指導condition成立時終止循環。
  固定循環:for...do...done, for variable in val1 val2 val3 do programming done。  for的另一種用法和C語言一樣,for (( init val; end val; increment val))  do  programming  done。
  經過兩天的完全學習,終於學習完shell-script了。還是重在實踐啊。。。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-556381-1-1.html 上篇帖子: linux shell 之tr命令 下篇帖子: shell脚本14
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表