Shell编程基础---shell的结构、执行及变量
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
本文索引:
- shell腳本介紹
- shell腳本結構和執(zhí)行
- date命令用法
- shell腳本中的變量
shell腳本介紹
shell是一種腳本語言,是一名運維工程師所必需掌握的最基本的能力。通過使用shell可以實現(xiàn)簡單的自動化運維,從而減輕我們的工作壓力,增加實際的工作效率。
shell腳本是系統(tǒng)命令的集合,通過使用shell的邏輯判斷、循環(huán)語法、自定義的函數(shù),可以實現(xiàn)更復雜功能腳本的編寫。配合Linux的crond服務,能夠?qū)崿F(xiàn)周期性操作的自動化運行,從而大大減少運維工作量。
shell腳本的學習需要做到多學多練,熟能生巧。另外Linux基礎知識也不容忽視,它是編寫一個shell腳本的基礎。只有勤學、多練,多思考,這樣才能盡快、更好的學好shell編程。
Shell腳本結構和執(zhí)行方法
一個shell腳本是以.sh結尾的文件,文件開頭#!/bin/bash。 對于本機而言#!/bin/bash并不是必須的,但是對于其他機器上,不加開頭就不一定可以執(zhí)行,它的意思即其后的代碼是由/bin/bash命令進行解析的。所以編寫shell時最好都寫上。
范例:example1.sh
vim example1.sh #!/bin/bash # by castiel # 2018-02-05 echo "hello world"由#開頭的行在shell中為注釋行(#!除外),此外有些特殊的腳本中#開始的行并一定是注釋,例如chkconfig腳本。
執(zhí)行腳本的方法
查看腳本執(zhí)行過程
sh -x example1.sh檢測腳本語法
# 沒信息表明沒有語法錯誤 sh -n example1.shdate命令用法
date命令在shell腳本內(nèi)十分有用,它可以生成想要的時間格式。
默認date命令顯示
[root@localhost shell]# date Mon Feb 5 19:12:54 CST 2018常用的幾種時間格式表示
# 日期 YYYY-MM-DD 格式 date +%F == date +%Y-%m-%d 2018-02-05# 時間 HH:MM:SS 格式 date +%T == date +%H:%M:%S# 幾天前、后... date -d "+1 day" // 一天后(明天的日期) date -d "-1 day" // 一天前(昨天的日期) date -d "-1 month" // 一月前(上個月的今日) date -d "-1 min" // 一分鐘前# 自1970-01-01后的秒數(shù) date +%s# 將+%s的秒數(shù)換為具體時間 date -d @1504697280# 將具體時間描述換算為秒數(shù) date +%s -d "2018-02-05 19:30:00"#星期幾即本年的第幾周 date +%w --> 1 //星期一 date +%W --> 06 //18年的第6周 date +%a --> Mon //周一 date +%A --> Monday //周一全稱# 月份 date +%b --> Feb date +%B --> FebruaryShell腳本的變量
shell變量的使用場景
字符串替換
shell的編寫過程中,如果某些字符串多次使用并且字符串的長度較長時可以使用shell變量進行代替,在使用時使用$變量進行操作,減少重復勞動。例如某些命令的絕對路徑表示。
條件判斷
此外在shell條件判斷語句時,也常用變量,例如:
if[ $a -gt 1 ] then... fi命令引用
引用某個命令的結果時,將命令的結果賦予某個變量,在后續(xù)便于進行判斷等條件處理。例如 n=wc -l 1.txt
命令交互
寫于用戶交互的腳本時,變量也是必不可少的。例如:
read -p "Input a number: " n echo $n內(nèi)置變量
shell內(nèi)有一些內(nèi)置變量,其使用場景還是比較廣泛的。
$0 --> 腳本本身 $1 --> 腳本后接的第一個參數(shù) $2 --> 腳本后接的第二個參數(shù) $# --> 參數(shù)的個數(shù) $@ -->數(shù)學運算
shell內(nèi)可以進行簡單的數(shù)學運算:
a=1 b=2 c=$(($a+$b)) //或c=$[$a+$b]轉(zhuǎn)載于:https://my.oschina.net/LuCastiel/blog/1618783
總結
以上是生活随笔為你收集整理的Shell编程基础---shell的结构、执行及变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IT 人士如何避免中年危机?
- 下一篇: 如何读懂UWA性能报告?—NGUI篇