Linux 学习笔记_10_Shell编程_2_Shell编程语法(三)
生活随笔
收集整理的這篇文章主要介紹了
Linux 学习笔记_10_Shell编程_2_Shell编程语法(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
三、select/in 【用的相對來說比較少】
格式: select 變量 in 關鍵字?
do?
command 1?
... ...?
command n?
done?
select把關鍵字中的每一項做成類似表單,以交互的方式執行do和done之間的命令。
【示例】
? #!/bin/bash?
? # A test for select?
echo "What's your favorite OS?"?
echo?
select name in "UNIX" "Linux" "Windows" "Others"?
do?
? break?
done?
echo "Your select is $name"?
四、case/esac
格式: case 變量 in?
字符串1)?
命令列表1?
;;?
...?
字符串n)?
命令列表n?
;;?
esac?
五、while
格式: while 條件?
do?
命令?
done?
【無限:whill true】
【示例】
#! /bin/sh?
num=1?
while [ $num -le 10 ]?
do?
SUM=`expr $num \* $num`?
echo $SUM?
num=`expr $num + 1`?
done?
六、untill
格式: until 條件?
do?
命令?
done?
until類似while循環,不同的是until是條件返回值為假時才繼續執行。
【示例】
#!/bin/bash?
# A test for until?
until [ -x /etc/inittab ]?
do?
ls -l /etc/inittab?
exit 0?
done?
七、跳出循環:break和continue?
break:跳出整個循環?
continue:跳過本次循環,進行下次循環
八、shift
參數左移,每執行一次,參數序列順次左移一個位置,$#的值減1, 用于分別處理每個參數,移出去的參數不再可用
【示例】
#! /bin/sh?
if [ $# -le 0 ]?
then?
echo "Not enough parameters"?
exit 0?
fi?
sum=0?
while [ $# -gt 0 ]?
do?
sum=`expr $sum + $1`?
shift?
done?
echo $sum?
函數名 ()?
{?
命令序列?
}?
二、函數的調用:不帶()?
函數名 參數1 參數2 ...?
三、函數中的變量:?
變量均為全局變量,沒有局部變量
四、函數中的參數:
調用函數時,可以傳遞參數,在函 數中用$1、$2...來引用?
Shell 腳本調試?
sh -x script 這將執行該腳本并顯示所有變量的值。?
sh -n script 不執行腳本只是檢查語法的模式,將返回 所有語法錯誤。?
【命令最好使用絕對路徑!】
【不用交互方式添加用戶】
useradd mery
echo 123456 | passwd --stdin mery
【執行腳本所需要的權限】
1、該腳本擁有r權限 【不給x權限可以用sh執行】 2、對腳本所在目錄有rx權限
格式: select 變量 in 關鍵字?
do?
command 1?
... ...?
command n?
done?
select把關鍵字中的每一項做成類似表單,以交互的方式執行do和done之間的命令。
【示例】
? #!/bin/bash?
? # A test for select?
echo "What's your favorite OS?"?
echo?
select name in "UNIX" "Linux" "Windows" "Others"?
do?
? break?
done?
echo "Your select is $name"?
四、case/esac
格式: case 變量 in?
字符串1)?
命令列表1?
;;?
...?
字符串n)?
命令列表n?
;;?
esac?
五、while
格式: while 條件?
do?
命令?
done?
【無限:whill true】
【示例】
#! /bin/sh?
num=1?
while [ $num -le 10 ]?
do?
SUM=`expr $num \* $num`?
echo $SUM?
num=`expr $num + 1`?
done?
六、untill
格式: until 條件?
do?
命令?
done?
until類似while循環,不同的是until是條件返回值為假時才繼續執行。
【示例】
#!/bin/bash?
# A test for until?
until [ -x /etc/inittab ]?
do?
ls -l /etc/inittab?
exit 0?
done?
七、跳出循環:break和continue?
break:跳出整個循環?
continue:跳過本次循環,進行下次循環
八、shift
參數左移,每執行一次,參數序列順次左移一個位置,$#的值減1, 用于分別處理每個參數,移出去的參數不再可用
【示例】
#! /bin/sh?
if [ $# -le 0 ]?
then?
echo "Not enough parameters"?
exit 0?
fi?
sum=0?
while [ $# -gt 0 ]?
do?
sum=`expr $sum + $1`?
shift?
done?
echo $sum?
函數應用
一、函數的定義:?函數名 ()?
{?
命令序列?
}?
二、函數的調用:不帶()?
函數名 參數1 參數2 ...?
三、函數中的變量:?
變量均為全局變量,沒有局部變量
四、函數中的參數:
調用函數時,可以傳遞參數,在函 數中用$1、$2...來引用?
Shell 腳本調試?
sh -x script 這將執行該腳本并顯示所有變量的值。?
sh -n script 不執行腳本只是檢查語法的模式,將返回 所有語法錯誤。?
【命令最好使用絕對路徑!】
【不用交互方式添加用戶】
useradd mery
echo 123456 | passwd --stdin mery
【執行腳本所需要的權限】
1、該腳本擁有r權限 【不給x權限可以用sh執行】 2、對腳本所在目錄有rx權限
轉載于:https://blog.51cto.com/zhujifang/1380182
總結
以上是生活随笔為你收集整理的Linux 学习笔记_10_Shell编程_2_Shell编程语法(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何根据指定软件版本制作属于自己的pup
- 下一篇: 【语法】NSString