扩展命令
echo //输出字符
选项:
-n //不换行
-e //支持转义
例子
# echo -n "hello" //输出不换行
hello[root@ecs-28c2 ~]#
# echo -e "hello\nworld"
hello
world
判断表达式 -》 判断整数
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
-eq 等于
-ne 不等于
read //读取键盘的输入赋值变量
选项
-p //print 打印提示
变量
自定义变量 //由自己绝对变量的值
# a=10
符号:
`` //反引号,把命令输出的结果赋值给变量 $()
案例:
# a=`hostname -I`
# echo $a //返回hostname -I 命令的结果
环境变量 //由系统自带的
# env //打印出系统里所有的环境变量
常见的系统环境变量
USER 当前登入的用户
HOSTNAME 当前输入的主机名
PWD 当前所在的绝对路径
HOME 当前登入用户的家目录
位置变量
$1 位置变量1 1到10
预定义变量
$? //判断上一条命令的返回值
返回值为0 上一条命令执行成功
返回去值1-254 上一条命令执行失败
Shell 脚本怎么写?
1、vim编辑 .sh 结尾的文件 - 脚本
#!/bin/bash //解释器
命令1
命令2
2、怎么去执行脚本
# bash a.sh //调用解释器去执行
题目:
执行脚本,可以知道当前的时间,当前登入的用户是谁,当前主机名是谁,当前在哪个目录下,当前主机的IP地址?
结果:
# bash t1.sh
2022年 09月 15日 星期四 15:06:31 CST
当前登入的用户: root
当前主机名:ecs-28c2
当前所在目录:/root/sh
当前的IP地址:192.168.0.15
逻辑 if for while
if判断
单分支语法:
if 判断表达式
then
命令
fi
多分支语法:
if 判断表达式
then
命令1
elif 判断表达式
then
命令2
fi
题目:
要求你输入一个数字,要求判断输入的数字是大于10还是小于10或者等于10 ?
#!/bin/bash
read -p"请输入数字:" a
if [ $a -gt 10 ]
then
echo "你输入的数字是大于10"
elif [ $a -lt 10 ]
then
echo "你输入的数字是小于10"
else
echo "你输入的数字是等于10,奖励一个kun"
fi
while 循环,条件判断循环
语法:
while 判断表达式
do
命令
done
循环控制语句:
continue 跳出本次循环,继续下一个循环
break 跳出整个循环
exit 跳出整个脚本
题目:
猜数字小游戏
随机生成一个1-100的随机数
echo $[$RANDOM%100+1] //该命令会随机生成一个1-100的随机数
要求:
1、每个人只有6次机会
2、要求输出猜大了还是猜小了
3、要求提示还剩下多少次机会
4、要求6次机会用完,提示正确答案
5、要求判断输入的数字是1-100以内,如果不是,进行提示
6、要求判断输入的数字是否是整数,如果不是,进行提示
7、如果用户不输入字符,直接回车,怎么办?
for 有序循环
语法
for 变量 in 列表
do
命令
done
列表写法:
{1..10} //1-10
{1,3,5,7,9} //1和3和5和7和9
(( i=1 ; i <=10 ; i++ )) //1到10