多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Shell編程入門(第二版)(上)

Shell編程入門(第二版)(上)

來源:程序員人生   發布時間:2014-10-10 08:00:01 閱讀次數:2113次

簡單的示例Shell程序

示例1.

#!/bin/bash #This is to show what a shell script looks like echo "Our first example" echo # This inserts an empty line in output. echo "We are currently in the following directory." /bin/pwd echo echo "This directory contains the following files" /bin/ls -l .

示例2.

#!/bin/bash # Auto mail for system info /bin/date +%F >> /tmp/sysinfo echo >> /tmp/sysinfo echo "Disk info:" >> /tmp/sysinfo /bin/df -h >> /tmp/sysinfo echo >> /tmp/sysinfo echo "Online users:" >> /tmp/sysinfo /usr/bin/who | /bin/grep -v root >> /tmp/sysinfo echo >> /tmp/sysinfo echo "Memory info:" >> /tmp/sysinfo /usr/bin/free -m >> /tmp/sysinfo echo >> /tmp/sysinfo # Write to root /usr/bin/write root < /tmp/sysinfo && /bin/rm -f /tmp/sysinfo # crontab -e # 0 9 * * 1-5 ./sysinfo.sh




Shell結構

1#!指定執行腳本的Shell

2#注釋行,描述該腳本的作用,負責人等信息

3、命令和控制結構

 

創建shell程序的步驟

第一步:創建一個包含命令和控制結構的文件。 

第二步:修改這個文件的權限使它可以執行: chmod u+x 

第三步:執行 ./example 或 sh example 或 . sysinfo.sh

  

Shell變量

變量:shell傳遞數據的一種方法,用來代表每個取值的符號名。 

Shell有兩類變量:臨時變量永久變量。 

臨時變量是shell程序內部定義的,其使用范圍僅限于定義它的程序,對其它程序不可見。包括:用戶自定義變量、位置變量。

永久變量是環境變量,其值不隨shell腳本的執行結束而消失。

 

1、用戶自定義變量

用戶定義的變量由字母或下劃線開頭,由字母、數字或下劃線序列組成,區分大小寫。變量名長度沒有限制。在使用變量值,要在變量名前加上前綴“$” 

 

2、設置和使用變量

設置變量:習慣上用大寫字母來命名變量。變量名只能以字母表中的字符開頭,不能用數字。 

變量賦值:=”兩邊沒有空格。 

定義時賦值,NUM=1 

將一個命令的執行結果賦給變量,:TIME=`date`;TIME=$(date +%F)

將一個變量的值賦給另一個變量,:B=120 ; A =$B 

使用echo命令查看變量值。例如:echo $A 

 

3、包含多個字的變量

NAME=Mike Ron #運行時出錯,應改為:

NAME=“Mike Ron” 或 $NAME=‘Mike Ron’ 

 

4、單引號與雙引號的區別

比如:定義DATE=$(date +%F)

time=”time is $DATE”

echo $time

time='time is $DATE'

echo $time

 

單引號之間的內容原封不動地指定給了變量。 

 

5 set查看系統中定義的所有變量

unset刪除所定義的變量

 

6、位置變量

Shell解釋執行用戶命令時,將命令行的第一個部分作為命令名,其它部分作為參數。由出現在命令行上的位置確定的參數稱為位置參數。 

例如

ls -l file1 file2 file3 

$0 這個程序的文件名 ls -l 

$n 這個程序的第n個參數值,n=1~9 

 

7、特殊變量

$* 這個程序的所有參數 

$# 這個程序的參數個數 

$$ 這個程序的PID 

$! 執行上一個后臺命令的PID 

$? 執行上一個命令的返回值

 

 

示例-autobak.sh

#!/bin/bash # backup files by date DATE=$(/bin/date +%Y%m%d) /bin/tar -cf /backup/$1.$DATE.tar $1 > /dev/null 2>> /backup/$1.bak.log /bin/gzip /backup/$1.$DATE.tar if [ $? -eq 0 ] then echo "$1 $DATE backup successfully" >> /backup/$1.bak.log else echo "ERROR: failure $1 $DATE backup" >> /bakup/$1.bak.log fi # crontable -e # 0 3 * * 2,5 script

 

示例-special.sh

#!/bin/bash # A test script for special var echo '$# is' $# echo '$* is' $* echo '$0 is' $0 echo '$? is' $? echo '$$ is' $$ echo '$2 is' $2

Shell命令

1read命令[交互方式]

read USERNAME

示例-read.sh

#!/bin/bash # A test script for read read first second third echo "Your first parameter is $first" echo "Your second parameter is $second" echo "Your third parameter is $third"

#sh -x 命令:單步調試顯示執行

 

 

2expr命令,對整型變量進行運算

如: expr 3 + 5  #”+”號之間須有空格

expr $var1 - 5 

expr $var1 / $var2 

expr $var3 * 10  #”*”號需要轉義符””

 

 

復雜的運算

expr `expr 5 + 7`/$var4

 

將運算結果賦予變量

var4=` expr $var1 / $var2 ` 

 

示例-expr.sh

#!/bin/bash # A test for expr a=10 b=20 c=30 val1=$(expr $a + $b + $c) echo "The value of val1 is $val1" val2=$(expr $c / $b) echo "The value of val2 is $val2" val3=`expr $a * $b` echo "The value of val3 is $val3" val4=`expr $a + $c / $b` echo 'The value of $a + $c / $b is ' $val4


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲社区| 91久久偷偷做嫩草影院免费看 | 日本高清专区一区二无线 | 欧美日韩久久 | 亚洲www网站 | 中文字幕在线影院 | 亚洲免费中文字幕 | 欧美性xxxx交 | 欧美高清xxxx性 | 欧美人与性动交α欧美精品图片 | 欧美日本一级在线播放 | 日韩精品一区二区三区四区 | 日本不卡一区二区三区在线观看 | 国产精品外围在线观看 | 性色aⅴ闺蜜一区二区三区 性色aⅴ在线观看swag | 一区二区三区精品 | 欧美成人免费全部色播 | 美女伊人网 | 国内精品一区二区三区αv 国内精品一区二区三区东京 | 日本一区二区三区免费看 | 国产v国产v片大片线观看网站 | 伊人免费在线观看 | 亚洲欧洲自拍偷拍 | 欧美18毛片 | 天天鲁天天爱天天鲁天天 | 国产一区二区色淫影院 | 国产亚洲第一页 | 人成午夜视频 | v天堂在线 | jizz性欧美3| 夜夜影院未满十八勿进 | 中文字幕高清在线观看 | 网友自拍视频悠悠在线 | 18视频免费网站 | 久久er国产精品免费观看8 | 欧美午夜色视频国产精品 | 国产精品国产三级国产专区不 | 在线观看男女激情小视频 | 日本护士xxxo | 欧美国产日韩精品 | 欧美超清性videosfree |