Linux的super super super easy教程 | shell编程

while循环:read可以导入

#!/bin/bash

#name sex age是变量 用来存放stu.txt文件里一行的数据并且一一对应

while read name sex age

do

         echo "姓名是$name 性别是$sex 年龄是$age"

done <stu.txt

#!/bin/bash

#name sex age是变量 用来存放stu.txt文件里一行的数据并且一一对应

while read name sex age

do

        if (($age>19));then

        #shell里面必须要双圆括号 以表示数值运算

          echo "大于19岁的人的姓名是$name 性别是$sex 年龄是$age"

        else

          echo "小于19岁的人的姓名是$name 性别是$sex 年龄是$age"

        fi

done <stu.txt

read  接受用户在终端里输入的内容 然后赋值给对应的变量(类似python的input)

       可以在脚本里执行的时候 往脚本里输入内容

-p “提示字符串” 提示

Shell编程:

; 命令连接符号,用来在一行里输入多个命令 /8

判断

if:

  1. 单分支:就是一种情况

两种写法

if 条件 ;then

    命令

fi

if 条件

then

    命令

fi

条件成立就执行命令 如果条件不成立就不执行命令

条件是一个命令也可以是一个表达式(公式)

  1. 双分支—》就是两种情况

if 条件;then

        命令1

else

        命令2

fi

  1. 多分支:多种情况

if 条件;then

命令1

elif

命令2

       else

              命令3

fi

shell编程中

(()):双圆括号主要用于整数的计算和比较

((数值的计算和比较实用的))

&& :与符号  表示两边的条件都要满足,都要执行成功

/dev/null  --》Linux里叫null设备文件(空设备文件) 左右:任何内容重定向到此文件都会消失,不保存

因为脚本在执行的过程中有些内容,不想看到不想保存去浪费磁盘的空间 于是我们可以重定向到/dev/null文件里  重定向到/dev/null不会影响到命令的返回值

$? 代表上一条命令执行的返回值

       0 说明上一条命令执行成功

       非0 说明上一条命令执行不成功 (1(命令正确,但有可能参数或者选项不对),9 (命令正确,但有可能参数或者选项不对),127(命令打错了不存在)等等)

$$ 查看当前终端对于bash的进程号

返回值和输出结果是两个概念!!!

返回值是命令完成后给bash的   返回值的范围是0-255

       具体每个命令出错的返回值是多少要看相关命令的创作者的执行文件

       若shell脚本不给返回值 运行成功默认返回值就是0

输出结果是命令执行过程中输出到屏幕上的 给人看的

exit 123: exit用来推出脚本 返回一个123的值 返回值就变成123

id 用户名:判断用户是否存在

if 只认 0 和 非0

所以if 会自动的去获取后面命令的返回值 如果返回值为0 if就认为命令执行成功 否则就认为命令执行不成功

if 0(shell会默认把0当作一个命令)

$是引用输出结果 而不是引用返回值

管道符号只是将命令1 的正确输出送给命令2  错误的不送

若一定要把错误的一起送到命令2 则需要在管道符号前面加 2>&1

如 lsls 2>&1 |grep ls

<<  输入重定向 一般用于shell脚本

生成文件以及输入文件内容 以EOF结束 :cat >文件  <<EOF

判断文件是否存在但不想看输出: stat 文件名 &>/dev/null

Shell脚本里的字符串的比较是双中括号[[ 里面可以加&&  ]]

如  if [[ $u_name==$username && $u_passwd==$passwd ]];then

根据name.txt文件批量创建用户名并设置密码?

需求分析:

while read name passwd

do

       useradd $name

       echo $passwd |passwd $name –stdin

done < name.txt

需要对用户进行判断 如果存在就不新建 不存在就新建 如果存在,密码还是要修改的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值