linux下shell编程
【shell】:
#! /bin/bash ? ? ? ? //shell腳本第一行以#!開頭,指定腳本運行環境
#Display a line ? ? //以#開頭的行是注釋
echo "hello world!" ?//echo命令把其參數傳遞給標準輸出,它在最后會自動加上一個換行符,每個代碼段完后,后面沒有分號
變量和運算符:
#! /bin/bash
log="monday" ? ?//shell中使用變量不需要事先聲明,=兩邊不能有空格(賦值)
echo $log ? ? ? //shell碰到帶有$的變量時會自動將其替換為變量的值
想輸出$字符時,就要用到\$轉義符號
shell提供了花括號{}來限定一個變量的開始和結束(緊跟變量輸出字母后綴時)
(shell):
#! /bin/bash
word="big"
echo "\$word is ${word}er""
bash中的引號:
雙引號:阻止shell對大多數特殊字符(例如#)進行解釋。但$ ` "仍保持其特殊的含義
單引號:阻止shell對所有字符進行解釋
倒引號:當用倒引號括起一個shell命令時,這個命令將會被執行,執行后的輸出結果將作為這個表達式的值。倒引號中的特殊字符一般都被解釋。
(shell):
#! /bin/bash
log=Saturday
echo "Today is $log" ? ?//雙引號會對其中的$字符進行解釋
echo 'Today is $log' ? ?//單引號不會對特殊字符進行解釋
echo "Today is 'date'" ?//倒引號會運行其中的命令,并把命令輸出作為最終結果
腳本執行命令和控制語句:
if語句(shell):
#!/bin/bash
echo "Enter password:"
read password ? ? ? ? ? //讀密碼,此行不能掉
if [ "$password" = "mypassword" ] //注意空格
then
? ?echo "welcome!!"
fi ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //fi為if的結束標志
case語句:case用于在一系列模式中匹配某個變量的值
條件測試:
if判斷的依據:if本身并不執行任何判斷。它實際上接受一個程序名作為參數,然后執行這個程序,然后判斷程序的返回值。其中test和[]可以對表達式進行測試。
test和[]可以對三類進行測試:字符串比較,文件測試,數字比較.
循環語句:
while(shell):
#! /bin/bash/
sum=0
number=1
while test $number -le 100 ? ? ? ?//-le是小于等于,test檢測條件是否成立
do
? ? sum=$[ $num + $number ]
? ? let number=$number+1
done ? ? ? ? ? ? ? ? ? ? ? ? ? //結束符
echo "The summary is $sum"
until:直到until后面的條件為真才終止循環,while是后面的條件為真才執行循環。
(shell):
#! /bin/bash
sum=0
munber=1
until ! test $number -le 100
do
? ? ?sum=$[ $sum + $number ]
? ? ?let number=$number+1
done ? ? ? ? ? ? ? ? ? ? ? ? ?//結束符
echo "the summary is $sum"
for(shell): ??
for i in 1 2 3 4 5 6 7 8 9//或for i in `seq`, ``用于執行命令
do
? ? echo $i ?//輸出每個變量
done ? ? ? ? ? ? ? ? ? ? ? ? ?//結束符
(shell):
#! /bin/bash
count=0
for file in `ls`
do
? ? if ! [ -d $file ] ? ? ? ?//-d用于判斷一個文件是否是目錄
? ? then
? ? ? ?let count=$count+1
? ? fi
done
echo "There are $count files"
?
總結
以上是生活随笔為你收集整理的linux下shell编程的全部內容,希望文章能夠幫你解決所遇到的問題。