shell study-5day--shell--read命令及if条件语句

1、read 命令键盘读取变量的值
从键盘读取变量的值,通常用在 shell 脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。

[root@test ~]# read test
1
[root@test ~]# echo $test
1

(1)read常用语法及参数
A、从标准输入读取一行并赋值给变量

[root@test ~]# read test
1

B、从标准输入读取多个值,遇到第一个空白符或换行符。把用户键入的第一个词存到变量a,把该行的剩余部分保存到变量b。

[root@test ~]# read a b
1 2 3
[root@test ~]# echo $a $b
1 2 3
[root@test ~]# echo $a 
1
[root@test ~]# echo $b   
2 3
[root@test ~]# 

C、read -s隐藏输入信息

[root@test ~]# read -s a 
[root@test ~]# echo $a
1111
[root@test ~]# 

D、输入时间限制
超过2秒没有输入就退出。

[root@test ~]# read -t 2 a 
[root@test ~]# echo $a

[root@test ~]# read -t 2 a 
1
[root@test ~]# echo $a     
1
[root@test ~]# 

E、输入长度限制
最多只允许输入2个字符

[root@test ~]# read -n 2 a  
11[root@test ~]#

F、使用-r参数输,允许让输入中的内容包括:\识别为普通字符

[root@test ~]# read -r a 
lll\ hshhs
[root@test ~]# echo $a
lll\ hshhs
[root@test ~]# 

G、-p 用于给出提示符

[root@test ~]#  read -p "please input: " password
please input: 123456
[root@test ~]# echo $password
123456
[root@test ~]# 

2、if语句流程
(1)单if语法格式

if 条件
then
commands
fi

Eg:查看ls命令是否执行成功

[root@test ~]# more if.sh 
#!/bin/bash
if ls /home
then 
        echo "it is ok"
fi
[root@test ~]# sh if.sh 
demo.py  pycharm-community-2020.2.3.tar.gz 
it is ok
[root@test ~]# 

(2)if…else
语法格式:

if 条件;then
commands
else
commands
fi

Eg:查看指定目录是否存在

[root@test ~]# vi test.sh 
#!/bin/bash
read -p "输入目录名称" a
if ls $a >>/dev/null
then
        echo "$a 存在"
else
        echo "$a 不存在"
fi
[root@test ~]# sh test.sh 
输入目录名称home
ls: 无法访问home: 没有那个文件或目录
home 不存在
[root@test ~]# sh test.sh 
输入目录名称/home
/home 存在
[root@test ~]# 

注:bash -v [脚本] 可检查脚本语法错误;
bash -x [脚本] 可显示脚本执行过程。
(3)多条件if语句
语法结构:

if 条件1 ; then
commands
elif 条件2 ; then
commands
elif 条件3 ; then
commands
.......
else
commands
fi

Eg:查看指定用户是否存在

[root@test ~]# vi test1.sh
#!/bin/bash
read -p "请输入用户名:" user
if grep $user /etc/passwd
then
echo "当前系统中存在此用户"
elif ls -d /home/$user
then
echo "$user 用户不存在"
echo "$user 有主目录"
else
echo "系统用户不存在"
echo "系统不存在用户目录"
fi
[root@test ~]# sh test1.sh 
请输入用户名:test
ls: 无法访问/home/test: 没有那个文件或目录
系统用户不存在
系统不存在用户目录
[root@test ~]# 

个人公众号,微信搜索:linux言叙
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值