Shell 脚本编程 基本语法:
生活随笔
收集整理的這篇文章主要介紹了
Shell 脚本编程 基本语法:
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Shell 腳本編程語法:
注:
文章來源 http://www.cnblogs.com/yunquan/p/6821850.html
視頻來源:https://www.bilibili.com/video/av10565321/index_1.html?t=684
這里每個語句都要有空格控制,不然語法錯誤
1.文件格式
以.sh后綴 在文件里,第一行寫環境變量 #!/bin/bash PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin .... //保證在其他電腦,也能運行(這里是配置環境) export PATH exit 0 (=C語言return 0,可以省略)跳出,不繼續向下執行2.執行sh
1)bash .sh文件 2)./.sh文件 3)source .sh文件3.read
read -p(提示字符) "請輸入你的名字" name(變量)echo "hello" $name4.判斷式
** test命令: -e 該【檔名】是否【存在】 (exist)?(常用) -f 該【檔名】是否是【檔案】(file)?(常用) -d 該【文件名】是否為【目錄】(directory)?(常用)**-r 偵測該檔名是否是具有【可讀】屬性?-w 偵測該檔名是否是具有【可寫】屬性?-x 偵測該檔名是否是具有【可執行】屬性?-eq 兩數相等(equal0)-ne 兩數值不相等(not equal)-gt n1 > n2 (greater than)-lt n1 < n2 (less than)-ge n1 >= n2(greater than or equal)-le n1 <= n2(less than or equal)eg:
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesexport PATHread -p "請輸入(Y/N):" yn[ "$yn" == "Y" -o "$yn" == "y" ] && echo "ok,continue" && exit 0[ "$yn" == "N" -o "$yn" == "n" ] && echo "oh,intsdsd" && exit 0echo "我不信這個也能出來" && exit 0shell scripts的預設變數( $0 $1 $2)
這個理解起來很簡單,腳本名稱就是 $0 然后第一個參數就是 $1 第二個參數就是 $2 ...以此類推
好,我們來個簡單的例子
#!/bin/bashecho "The scripts name is $0"$0是第一個參數,下面的 -n 參數是判空,是假的就不執行,是真的執行后面語句,最后exit
[ -n "$1" ] && echo "第一個參數是: $1" || exit 0 [ -n "$2" ] && echo "第二個參數是: $2" || exit 05.條件判斷式
if ...then
if [];then ...... elif [];then ...... else ...... fi(結束語) exit 0eg:
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games export PATH read -p "請輸入(Y/N):" yn if [ "$yn" == "Y" -o "$yn" == "y" ];thenecho "ok,continue" elif [ "$yn" == "N" -o "$yn" == "n" ];thenecho "oh,intsdsd" elseecho "我不信這個也能出來" fi exit 0case ...in ...esac
#!/bin/bash case $1 in"hello")echo "hello,how are you";;"")echo "你必須輸入參數";;*)echo "要輸入hello啊";; esacfunction函數
#!/bin/bashfunction h() {echo "好帥啊 $1" //function函數也有變量,$1就是函數的參數,這個和腳本的變量不同 }case $1(腳本的第一個參數,從bash外面輸入的) in"one")h 1;;"two")h 2;;"three")h 3;;*)echo "只能用123";;esacLOOP
while do done
#!/bin/bash read -p "請輸入一個數字:" number i=0 s=0 while [ "$i" -lt "$number" ] //這里的小于號是 -lt 注意! do i=$(($i+1)) //這里為什么要兩個()?因為()有運算的意思 s=$(($s+$i)) //這里i和s這兩行不能有空格,否則失敗 done echo -e "'1+2+...+$number' 的結果是: $s "6.shell script 的追蹤與debug
-n 不執行script,僅查詢語法問題: -v 執行script前,先將script 的內容輸出到屏幕上 -x 將使用到的script內容顯示到屏幕上,這是很有用的參數轉載于:https://www.cnblogs.com/Kernel001/p/7871999.html
總結
以上是生活随笔為你收集整理的Shell 脚本编程 基本语法:的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玄关摆放烟货架好吗?
- 下一篇: 乌鲁木齐中天翡丽郡府是毛坯房还是精装修?