码迷,mamicode.com
首页 > 系统相关 > 详细

shell编程--变量和if语句的使用

时间:2020-06-24 23:46:43      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:换行   覆盖   shell编程   local   速度   操作系统   不用   随机   lan   

一、什么是Shell?

        shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。

 

二、什么是脚本?

       脚本就是由Shell命令组成的文件,这些命令都是可执行程序的名字,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

 

三、Linux中有哪些脚本解释器?

       有dash和bash两种,但dash没有bash功能全面,所以通常使用bash。

       可以通过命令来查看系统中的脚本解释器:  ls  -l  /bin/*sh

 

注意:执行之前首先要为脚本文件添加可执行权限,不然就得用root权限才能执行!

添加可执行权限: chmod  +x  name.sh   回车

 

四、shell脚本的执行方式

1)   ./name.sh     这种方式脚本第一行一定要加#!/bin/bash

 

2)    /bin/bash name.sh

 

3)   bash name.sh

 

4)   sh name.sh

 

 

技术图片

 

 

 

在编译的时候用空格分割  依次传入参数

./name.sh  1234 abcd
             参数1  参数2

技术图片

 

 

 

技术图片

 

 

 

shell 脚本 常用参数

 

#!/bin/sh         # 在脚本第一行脚本头 # sh为当前系统默认shell,可指定为bash等shell
sh -x             # 执行过程
sh -n             # 检查语法
(a=bbk)           # 括号创建子shell运行
basename /a/b/c   # 从全路径中保留最后一层文件名或目录
dirname           # 取路径
$RANDOM           # 随机数
$$                # 进程号
source FileName   # 在当前bash环境下读取并执行FileName中的命令  # 等同 . FileName
sleep 5           # 间隔睡眠5秒
trap              # 在接收到信号后将要采取的行动
trap "" 2 3       # 禁止ctrl+c
$PWD              # 当前目录
$HOME             # 家目录
$OLDPWD           # 之前一个目录的路径
cd -              # 返回上一个目录路径
local ret         # 局部变量
yes               # 重复打印
yes |rm -i *      # 自动回答y或者其他
ls -p /home       # 区分目录和文件夹
ls -d /home/      # 查看匹配完整路径
time a.sh         # 测试程序执行时间
echo -n aa;echo bb                    # 不换行执行下一句话 将字符串原样输出
echo -e "s\tss\n\n\n"                 # 使转义生效
echo $a | cut -c2-6                   # 取字符串中字元
echo {a,b,c}{a,b,c}{a,b,c}            # 排列组合(括号内一个元素分别和其他括号内元素组合)
echo $((2#11010))                     # 二进制转10进制
echo aaa | tee file                   # 打印同时写入文件 默认覆盖 -a追加
echo {1..10}                          # 打印10个字符
printf %10s\n|tr " " a              # 打印10个字符
pwd | awk -F/ { print $2 }          # 返回目录名
tac file |sed 1,3d|tac                # 倒置读取文件  # 删除最后3行
tail -3 file                          # 取最后3行
outtmp=/tmp/$$`date +%s%N`.outtmp     # 临时文件定义
:(){ :|:& };:                         # 著名的 fork炸弹,系统执行海量的进程,直到系统僵死
echo -e "\e[32m颜色\e[0m"             # 打印颜色
echo -e "\033[32m颜色\033[m"          # 打印颜色
echo -e "\033[0;31mL\033[0;32mO\033[0;33mV\033[0;34mE\t\033[0;35mY\033[0;36mO\033[0;32mU\e[m"    # 打印颜色

 

 

 

 

if语句的使用

 

一、比较数字的大小----双括号

 

技术图片

 

 

 

 

二、判断目录是否存在   -d

技术图片

 

 

三、判断文件是否存在

技术图片

 

 

四、多个if判断

技术图片

 

 

 

 逻辑运算符解析:

逻辑运算符解析:
-f     判断文件是否存在 eg: if [ -f filename ]
-d     判断目录是否存在 eg: if [ -d dir     ]
-eq    等于 应用于:整型比较
-ne    不等于 应用于:整型比较
-lt    小于 应用于:整型比较
-gt    大于 应用于:整型比较
-le    小于或等于 应用于:整型比较
-ge    大于或等于 应用于:整型比较
-a    双方都成立(and) 逻辑表达式 –a 逻辑表达式
-o    单方成立(or) 逻辑表达式 –o 逻辑表达式
-z    空字符串

 

shell编程--变量和if语句的使用

标签:换行   覆盖   shell编程   local   速度   操作系统   不用   随机   lan   

原文地址:https://www.cnblogs.com/-citywall123/p/13190159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!