注意:
- 運行環境:Linux
- #!/bin/bash :所有腳本的頭
1 echo 輸出
vim 01.sh 創建文件夾
#!/bin/bash
NDK=10
text="i love shell"
text1=`date`
text2=$(who)
echo $NDK
echo $text
echo "$text very much"
echo "\$NDK"
echo $text1
echo $text2
#輸出重定向
ls -al > test
修改權限
chmod u+x 01.sh
#chmod g+x 01.sh
#chmod o+x 01.sh
運行:
./01.sh
輸出結果:
10
i love shell
i love shell very much
$NDk
data
bao tty7 2020-03-28 06:18
tst 文件是重定向的內容
2 計算
#!/bin/bash
a=10
b=20
#expr命令
c=$(expr $b / $a)
#方括號
d=$[$a * 2]
#bc 浮點數計算
#| 管道,一個命令的輸出作爲另外一個命令的輸入
#scale是自帶的內建變量
e=$(echo "scale=4; $a / 3" | bc)
#內聯輸入重定向
f=$(bc << EOF
scale=4
a1 = ($a * $b)
a1 / 3
EOF
)
echo "c:$c"
echo "d:$d"
echo "e:$e"
echo "f:$f"
3 if
#!/bin/bash
if test $1
then
echo "test ok $1"
else
echo "test not"
fi
運行:./03.sh 10,結果:test ok 10
運行:./03.sh,結果:test not
$1 表示輸入的第1個值
$0 表示當前執行的腳本文件,./03.sh
命令執行退出的狀態:
0 成功
127 沒有找到命令
1 未知錯誤
126 命令不可執行
test數值比較
if [ $1 -eq $2 ] 表示 $1 == $2
#-eq 等於
-le 小於
-ne 不等於
test字符串比較
str1 == str2
str1 != str2
str1 < str2
-n str1 長度是否非0
-z str1 長度是否爲0
文件比較
-d 檢查是否存在,並且是一個目錄
-e 檢查file是否存在
-f 檢查是否存在,並且是一個文件
-r 檢查是否存在,並且可讀
-w、-x
file1 -nt file2 file1比file2新
file1 -ot file2 file1比file2舊
4 case命令
case 變量 in
pattern1) 命令;;
pattern2) 命令;;
*) 默認命令;;
esac
5 for命令
for var in list
do
命令
done
6 while命令
while test command
do
命令
done
7 導入
source ./04.sh
或者. ./04.sh
04.sh
#!/bin/bash
function add()
{
echo $1
}
add $1
05.sh
#!/bin/bash
#source .04.sh
. ./04.sh
function myfun
{
echo $value
}
value=30
myfun
echo "add value $(add 50)"
運行:
./05.sh 88
輸出結果:
88
30
add value 50