通常,一个如 *.sh 的格式的文件,是一个可执行的shell脚本文件,可以使用bash *.sh 的方式进行执行。
shell脚本,和C语言,Java是一样的,都是一种语言,它存在的意义,就是提供给用户,进行linux系统的文件管理,内存管理等操作系统内核。
其基本的语法介绍如下:
1,一个hello world的shell脚本介绍。
#!/bin/bash
echo "hello world!"
在一个shell脚本中,第一行一般是一个 # 开头的注释,在shell脚本中,所有的注释都是以 # 开头的。
echo是shell脚本的输出。表示我这个脚本的输出一个hello world的字符串。
2,shell脚本的变量定义和使用
定义一个变量,一般遵循的规则是:系统变量一般使用大写字母进行定义,用户自己一般的变量就使用普通的小写的字母,变量名只能包含字母和数字,但是变量名不能以数字开头。
使用一个变量的方式,就是 $+变量名 的方式进行使用。
#!/bin/bash
a=1
echo "$a"
3,shell脚本的条件判断
test语句:test语句的执行结果是0或者1,其中0代表为真,1代表为假。
test语句可以判断文件类型,判断是否是一个正常的文件,判断是否是一个文件夹,判断文件的读写权限,判断数字的是否相等等等。
f=a.txt
test -e $f
test -d $f
test -f $f
上面的三个test语句分别判断a.txt的文件,是不是存在,是不是一个文件夹,是不是一个文件。
第二种方式是使用中括号
[ “$a” == “abc” ]
这种中括号的对比方式,要求在每个变量,变量的链接符需要有空格。
4,if语句
基本格式1:
if 条件1
then
命令1
fi
基本格式2:
if 条件1
then
命令1
else
命令2
fi
基本格式3:
if 条件1; then
命令1
elif 条件2; then
命令2
else
命令3
fi
choice=$1
if [ "$choice" == "one" ]
then
echo "this is if true"
else
echo "this is if false"
fi
5,case语句
case 变量 in
“条件1”)
命令1
;;
“条件2”)
命令2
;;
“*”)
命令3
;;
esac
choice=$1
case $choice in
"one")
echo "you choice one"
;;
"two")
echo "you choice two"
;;
*)
echo "should choice one two three"
;;
esac
6,function函数
function sum(){
a=$1;
b=$2;
echo $(($a+$b));
}
total=$(sum 1 2);
echo "total is ${total}"
7,read命令以及重定向内容
while read line
do
echo "$line"
done < a.txt