linux shell腳本 簡單學習
一些需要知道的概念
- SHELL種類
kernel與shell是兩個不一樣的東西。
SH:
Bourne shell(sh),solaris,hpux默認shell
Bourne again shell (bash),Linux 默認shell
- Linux中查看shell:
echo $SHELL
/bin/bash
- shell環境
1.臨時環境變量
2.系統預定義的環境變量
3.將一些環境變量永久生效
shell腳本
跟平常的腳本一樣,shell編寫腳本也是一門學問。
- 簡單的一個例子
類似於py腳本,
開頭要告訴內核,用什麼去識別。
註釋的話用#去標識。
先寫個簡單的demo:
more demo.sh
#!/bin/bash
#linux shell script!!!!!amazing!
echo "hello linux"
簡單的打印出字符串。
----emmm,一般在shell腳本加上.sh後綴,只是爲了好辨認出了而已。。。。
- 腳本的權限問題
一般這樣編寫的腳本都是沒有執行權限的。
-*- 解決方案 - * -
chomod +x filename.sh
就行了,ls查看,變綠了就是能執行的。
- 執行腳本
簡單:
sh filename
./filepath/filename
PS:tips:寫腳本時,可以在最後一行(另起一行)加上data
這樣的話,就能辨識這個腳本是什麼時候寫的。
- shell中的變量
這個也不難,也不用學太多其他啥的。
記住要在變量之前弄個$就好了。
一些命令:
set #list all the aspects
unset xxx#delete some aspects
- 交互的命令
read 相當於python的input命令
read -p "input a number:" x
#it means the value of the num point to x hh
簡單的邏輯判斷
- if - then
判斷條件:(要使用雙小括號“(())”來表示)
demo:(記住大概模式模仿就行了)
#!/bin/bash
#demo logic
data
read -p "input a number!sir,:" num
if ((num<10));then
echo "small num"
elif ((a>10))&&((a<20));then
echo "bigger"
else
echo "biggest"
fi
for demo
#!/bin/bash
#data for
data
for i in a,b,c,d ;do
echo $i
done