【学习笔记】2022.7.15/16第七课第八课

这两天笔记略少,因此合二为一了。
根据实际练习中遇到的问题,找到了以下知识点,下面放几个知识点地址记录下。

linux命令中各种括号的用法:http://www.javashuo.com/article/p-rxybmeuc-mc.html
脚本执行方法:https://www.itdaan.com/blog/2015/09/08/5933daea7166e0f9aff1bfcb72c6babd.html
关于空格知识点:https://blog.csdn.net/dream_of_grass/article/details/122150044

问题1:文件测试语句执行后为何通过echo ? 返回执行结果?答: ?返回执行结果? 答: ?返回执行结果?答:?是上一回命令执行后的返回值,但并不是命令执行的过程而是结果,成功则为0,失败则是1或2。

问题2:测试语句易出错原因?
答:注意加空格,[ 命令 ]中括号和命令之间需要加空格,命令中也需要加,例如:

[$USER = root ]

问题3:

[root@linuxprobe ~]# vim addusers.sh
#!/bin/bash
read -p "Enter The Users Password : " PASSWD
for UNAME in `cat users.txt`
do
        id $UNAME &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "$UNAME , Already exists"
        else
                useradd $UNAME
                echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null
                echo "$UNAME , Create success"
        fi
done

为什么 N A M E 可以逐个读取用户名?答:暂未查到结果,以后补充。 4 、脚本内定义的变量,终端为合适呢么不能用?答: l i n u x 特性,脚本内定义的变量终端不可以使用。 5 、 l i n u x 内 T I M E S = NAME可以逐个读取用户名? 答:暂未查到结果,以后补充。 4、脚本内定义的变量,终端为合适呢么不能用? 答:linux特性,脚本内定义的变量终端不可以使用。 5、linux内TIMES= NAME可以逐个读取用户名?答:暂未查到结果,以后补充。4、脚本内定义的变量,终端为合适呢么不能用?答:linux特性,脚本内定义的变量终端不可以使用。5linuxTIMES=TIMES+1为什么执行失败,
答:不加括号,linux默认为字符串,加(())才可以运算。
(expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。)

[root@linuxprobe ~]# TIMES=1
[root@linuxprobe ~]# echo $TIMES
1
[root@linuxprobe ~]# TIMES=$((TIMES+1))
[root@linuxprobe ~]# echo $TIMES
2
[root@linuxprobe ~]# TIMES=$(($TIMES+1))
[root@linuxprobe ~]# echo $TIMES
3
[root@linuxprobe ~]# TIMES=$[$TIMES+1]
[root@linuxprobe ~]# echo $TIMES
4
##例子2 expr用法
[root@linuxprobe ~]# TIMES=1
[root@linuxprobe ~]# echo $TIMES
1
[root@linuxprobe ~]# TIMES=$[  `expr $TIMES+1` ]
[root@linuxprobe ~]# echo $TIMES
2
[root@linuxprobe ~]# TIMES=$[  `$TIMES+1` ]
bash: 2+1: command not found...
Failed to search for file: Cannot update read-only repo
[root@linuxprobe ~]# 
## expr用法
[root@linuxprobe ~]# TIMES=1
[root@linuxprobe ~]# echo $TIMES
1
[root@linuxprobe ~]# TIMES=`expr $TIMES + 1`
[root@linuxprobe ~]# echo $TIMES
2
[root@linuxprobe ~]# TIMES=$[  `expr $TIMES+1` ]
[root@linuxprobe ~]# echo $TIMES
3
[root@linuxprobe ~]# TIMES=$[  `expr $TIMES + 1` ]
[root@linuxprobe ~]# echo $TIMES
4
[root@linuxprobe ~]# TIMES=`expr $TIMES+1`
[root@linuxprobe ~]# echo $TIMES
4+1
[root@linuxprobe ~]# 

##此处出现问题:TIMES=`expr $TIMES+1`和TIMES=`expr $TIMES + 1`区别?
##为什么“+”两侧没空格是字符串,有空格是表达式?
答:expr表达式中的运算符两边都需要有空格,否则运算无法进行





笔记照片:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值