1、./檔名
2、sh 檔名
3、#source 檔名
#!/bin/sh //必須要帶上這個 shell 宣告
A="hello" // 這裏不能 A = "hello" , 帶有空格的話會識別錯誤
echo "A is"
echo $A
Linux :\n 爲回車換行
windows : \r\n 爲回車換行
ll | grep "s" // 通過管道 | ,檢視 ll 下 含有 s 的內容
#!/bin/sh
echo $0
echo $#
echo $1
echo $2
echo $3
#!/bin/sh
A=10
echo $A // 先列印 A =10 值
read A //從鍵盤讀入數據
echo $A
#!/bin/sh
if test -f a.sh #如果成立就執行then
then #一定要加
echo "sucess"
else
echo "failed"
fi #一定要加結束符號
#!/bin/sh
if [ -f a.sh ] // 格式 [ ] 左右兩邊都要一個空格
then
echo "yes"
else
echo "no"
fi
使用[ ]時,必須要在 [符號和被檢查的條件之間留出空格,可以把符號看作和test樣,test和後面的條件之間總是有一個空格。
程式碼最後不要忘了寫 fi 來結束這個判斷
#!/bin/sh
echo "please scanf you data,answr is yes or no"
read data
if [ $data = "yes" ]
then
echo "good"
else
echo "Fuck"
fi
#!/bin/sh
if [ 10 -lt 2 ] //如果 10 小於 2 ,纔列印 good
then
echo "good"
elif [ 10 -gt 5 ] // 如果 10 大於5 ,列印 well
then
echo "well"
else
echo "NO"
fi
#!/bin/sh
if [ 3 -eq 4 ]
then
echo "yes"
else
echo "no"
fi
#!/bin/sh
if [ -d b.txt ]
then
echo "yes"
else
echo "no"
fi
#!/bin/sh
echo "please input data"
for data in 1 2 3
do
echo $data
done
#!/bin/sh
echo "input data"
#data=1
read data //從鍵盤輸入data
while [ $data != 6 ] // 從鍵盤 輸入data ,判斷data 是否不等於 6
do
echo "again"
echo $data
data=$(($data+1)) // data 依次相加 ,類似於C 語言中 data++
done //回圈必帶 結束符
exit 0
#!/bin/sh
echo "input data"
data=5
until [ $data -le 6 ]
do
echo $data
data=$(($data+1))
done
echo "跳出回圈"
exit 0
#!/bin/sh
echo "請輸入數據"
read data
case "$data" in
yes) echo "good";; #注意一定要兩個 ;; 結尾
y) echo "nice";;
no) echo "fuck";;
n) echo "shift";;
esac # 選擇語句必帶
exit 0
#!/bin/sh
foo() // 函數名字 + ()
{
echo $0 # 列印檔案名字
echo $1 # 列印第一個參數
echo $2 # 列印第二個參數
}
echo $0 $1 $2
foo $1 $2 # 這裏要給foo 函數 傳參數 纔會列印 $1 、$2
#!/bin/sh
A="good"
foo()
{
local A="nice"
echo $A
}
echo "區域性變數local作用:"
foo
echo "全域性變數:"
echo $A
exit 0
#!/bin/sh
fun()
{
while :
do
echo "gg"
done
}
fun
exit 0
#!/bin/sh
A=10
B=15
while [ $A -ne $B ]
do
A=$(($A+1))
if [ $A -eq "12" ] # 當 A = 12時 跳出回圈
then
echo "good"
break; # 這個 ; 可加可不加
fi
done
exit 0
#!/bin/sh
yes_or_no()
{
echo "is your name $*?"
while true
do
echo "please enter yes or no"
read a
case "$a" in
y|yes) return 0;; # 在shell指令碼,0表示返回成功,相當於 c語言的 1
n|no) return 1;;
* ) echo "error"
esac
done
}
echo "original parameters are $*"
if yes_or_no "$A" # shell指令碼程式設計中,注意:Linux中返回0表示成功
then # $A 用一個變數 A 來存放返回值,用其他字元也可以
echo "hi"
else
echo "never mind"
fi
exit 0
#!/bin/sh
rm -rf fred*
echo > fred1
echo > fred2
mkdir fred3
echo > fred4
for file in fred*
do
if [ -d "$file" ]
then
echo skipping the directory $file
continue
fi
done
echo first direcyory starting fred was $file
rm -rf fred*
將當前的shell替換爲一一個不同的程式
exec wall"hello world"
將當前的shell替換爲執行wall,exec後面的語句都不會執行了,因爲當前的shell已經不復存在了
#!/bin/sh
echo "lulu"
exec echo "hengheng"
echo "aa"
echo "bb"