Shell 脚本

    xiaoxiao2023-03-24  5

    参考:http://study.163.com/course/courseMain.htm?courseId=306001

    一、创建第一个 Shell 脚本

    1、任务

    (1)、添加一个名为 zhangsan 的用户

    useradd zhangsan

    (2)、将用户 zhangsan 的密码设置为 123456

    passwd zhangsan

    2、整理执行语句

    #2016.11.26,by air

    echo "正在创建用户账号 zhangsan ......"

    useradd zhangsan

    echo "正在为用户 zhangsan 设置密码......"

    echo 123456 | passwd --stdin zhangsan

    echo "创建成功."

    3、运行脚本

    假设脚本文件名为 uad.sh

    方法1:

    chmod +x uad.sh

    ./uad.sh

    方法2:

    sh uad.sh

    方法3:

    source uad.sh

    二、管道操作

    将一端的命令输出交给另一端的命令处理

    格式:命令 1 | 命令 2

    注:管道是单向的

    在 etc 目录下查找以 .conf 结尾的文件,查找的结果以一行一个的形式列出来

    find /etc -name "*.conf" -type f

    通过 wc 命令进行统计个数

    find /etc -name "*.conf" -type f | wc -l

    列出系统中所有的进程信息

    ps aux

    只列出包含 httpd 的进程信息

    ps aux | grep httpd

    三、重定向操作

    改变执行命令时的默认输入、输出

    (1)重定向输入

    操作符:<

    用途:从指定文件读取数据,而不是从键盘读入

    (2)重定向输出

    操作符:>、>>

    用途:将输出结果覆盖、追加到指定文件

    (3)标准错误输出

    操作符:2>、2>>

    用途:将错误信息覆盖、追加到指定文件

    (4)混合输出

    操作符:&>、&>>

    用途:将标准输出和错误信息覆盖、追加到指定文件

    查看当前 linux 内核版本

    uname -r

    将版本信息保存到文件

    uname -r > version.txt

    查看 version.txt

    cat version txt

    如果运行 cat version2.txt 但是没有 version2.txt 这个文件会报错:

    cat: version2.txt : 没有那个文件或目录

    将错误信息输出到一个 error.txt 文件中

    cat version2.txt 2> error.txt

    然后执行 cat error.txt

    显示 cat: version2.txt : 没有那个文件或目录

    四、逻辑分割

    处理多条命令之间的逻辑关系

    逻辑与:&&

    逻辑或:||

    顺序执行:;

    四、使用变量

    1、变量基本操作

    定义及赋值

    格式:变量名=变量值

    引用变量

    格式:$变量名、${变量名}

    双引号:允许引用、\转义

    单引号:禁止引用、转义

    反撇号,或者$():以命令输出进行替换

    2、常见的环境变量

    用来记录/设置运行参数

    系统赋值:USER、LOGNAME、HOME、SHELL、.......、

    用户操作:PATH、LANG、CLASSPATH、......、

    3、其它特殊变量

    $?:前一条命令的状态值,0为正常、非0异常

    $0:脚本自身的程序名

    $1-$9:第1-第9个位置参数

    $*:命令行的所有位置参数的内容

    $#:命令行的位置参数个数

    五、数值运算及处理

    1、整数运算操作

    使用 expr 命令,计算表达式

    格式:expr 数值1 操作符 数值2

    使用 $[] 表达式,算式替换

    格式:$[数值1 操作符 数值2]

    2、几个数值处理技巧

    变量的递更处理

    格式:let 变量名++、let 变量名--

    使用随机数

    RANDOM 变量

    生成数字序列

    格式:seq 首数 末数、seq 首数 增量 末数

    3、小数运算操作

    六、字符串处理

    1、子串截取操作

    2、字符串替换

    3、使用随机字符串

    转载请注明原文地址: https://ju.6miu.com/read-1202036.html
    最新回复(0)