【知识积累】大数据旅程-Linux 引用&命令替换 退出状态&逻辑判断 表达式

引用&命令替换

  • 双引号:弱引用,参数扩展
  • 单引号:强引用,不可嵌套
  • 大括号扩展不能被引用
  • 命令执行前删除引用(不能打印单引号和双引号)

a=100
echo $a
echo "$a"
echo '$a'
echo "\"$a\""

退出状态&逻辑判断

  • 反引号:`ls -l /`
  • $(ls -l /)
  • 可以嵌套
  • echo $?:打印上一个命令的退出状态
  • command1 && command2
  • command1 || command2

b=echo $a
执行报错(-bash:100:command not found),linux认为前面是一个赋值,后面是一个命令
b=`echo $a`
echo $b
b=`echo $(echo $a)`

ls -l /
ls -l / && echo ok
ls -l /god && echo ok
ls -l /god || echo ok

表达式

  • 算术表达式

       let 算术运算表达式:let C=$A+$B
       $[算术表达式]:C=$((A+B))
       expr 算术表达式(表达式中各操作数及运算符之间要有空格,而且要使用命令引用):C=`expr $A+$B`
       help let

a=1
b=2
((a++))
echo $a
c=$((a+b))
echo $c

  • 条件表达式

       [expression]
       test expression
       [[expression]]
       help test

test 3 -gt 8
echo $?
test 3 -gt 2
echo $?
test 3 -gt 2 && echo ok
test 3 -gt 8 && echo ok


中括号和test命令的作用一样
type test
type '['


[ 3 -gt 2 ] && echo ok
[ 3 -gt 8 ] && echo ok

  • 流程控制

题目:

  1. 添加用户
  2. 用户密码同用户名
  3. 静默允许脚本(不输出系统自带的提示)
  4. 避免捕获用户接口(不需要用户的其他操作)
  5. 程序自定义输出

man passwd


id god:查看用户


su god:切换用户(root切换普通用户不需要输入密码,普通用户切换普通用户需要输入密码)


逻辑判断时,尽量不要使用||

version1:
vi userAdd.sh

#!/bin/bash

useradd $1
echo $1 | passwd --stdin $1 &> /dev/null #--stdin从标准输入读取密码,并将默认提示输出到/dev/null
echo "user add success"


version2:
vi userAdd.sh

#!/bin/bash

[ ! $# -eq 1 ] && echo "args erro..." && exit 2 #校验参数个数
id $1 &> /dev/null && echo "user exist..." && exit 3 #校验用户是否存在
useradd $1
echo $1 | passwd --stdin $1 &> /dev/null #--stdin从标准输入读取密码,并将默认提示输出到/dev/null
echo "user add ok"


version3:
vi userAdd.sh

#!/bin/bash

[ ! $# -eq 1 ] && echo "args erro..." && exit 2 #校验参数个数
id $1 &> /dev/null && echo "user exist..." && exit 3 #校验用户是否存在
useradd $1 &> /dev/null && echo $1 | passwd --stdin $1 &> /dev/null && echo "user add ok" && exit 0
echo "I dou't know..." && exit 9

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值