1.创建文件
先创建一个 .sh 文件,然后还需要给予权限才能运行
# vim cmd.sh
# chmod 777 cmd.sh
2.接收参数
#!/bin/sh
str="一个变量"
echo $str
echo "参数个数:$#"
echo "参数1:$1, 参数2:$2, ...."
echo "所有参数:$*"
# ./cmd.sh 1 2 3 4
一个变量
参数个数:4
参数1:1, 参数2:2, ....
所有参数:1 2 3 4
#! /bin/sh,通知系统用/bin/sh来执行下面的程序。
echo代表输出后面一段话的到用户界面
str=“一个变量” 创建了一个变量,可以在下面使用(变量名和等号之间不能有空格)
$str,取出变量的值,有时候需要加${str},用来区别变量边界
$#,代表参数的个数
$* 代表所有的参数
$i(i=1,2,3,4......),可以依次取出所有参数,$i 代表第 i 个参数
3.shell中执行命令
#!/bin/sh
# `不是单引号,是 ESC 下面的那个符号
result=`ls /usr`
echo $result
# ./cmd.sh
bin etc games include lib lib64 libexec local sbin share src tmp
4.读取键盘输入
#!/bin/sh
echo "输入a:"
read a
echo "a=$a"
# ./cmd.sh
输入a:
123
a=123
read命令读取一个输入行,直至遇到换行符。
行尾的换行符在读入时将被转换成一个空字符
如果read命令后有变量名,输入内容赋给该变量。
如果read命令后未跟变量名,读入的行将被赋值给内置变量REPLY。
5. 字符串
单引号:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
双引号:双引号里面可以有变量,可以出现转义字符
字符串中间出现成对的单引号或双引号可以实现拼接字符串
6. if 语句(两种)
1.判断条件是否正确,test是一个关键字来判断condition是否正确
if (test condition) then
commands
else
commands
fi
2.判断文件或者文件夹是否存在
#中间内容和[]一定要用空格隔开,不然报错
if [ -option file ]; then
commands
else
commands
fi
#!/bin/sh
if [ -e "cmd.sh" ]; then
echo "存在"
else
echo "不存在"
fi
7.while 循环
while [ expr ];
do
commands
done
#!/bin/sh
a=1
while [ $a -le 10 ]
do
echo $a
a=`expr $a + 1`# $a 和 1 与 + 号之间要用空格隔开
#a=$[ $a + 1 ]
#let ((a++))
#let a+=1
done
打印出 1~10 的数, -le 表示小于等于 shell 运算符
8.for循环
for varname in list ;
do
commands
done
每一次循环会将列表中的一个值取出放到varname中
9.函数
#!/bin/sh
function fun1
{
echo "第一个参数:$1"
echo "第二个参数: $2"
return 100
}
fun1 1 2
echo "函数返回值:$?"
$?,用于取出上一个函数的返回值,也可以获取调用其他shell脚本的退出码
10.exit语句
#退出当前shell
exit 0