博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell基础之-变量、比较、测试
阅读量:6314 次
发布时间:2019-06-22

本文共 1536 字,大约阅读时间需要 5 分钟。

Shell基础之-变量、比较、测试

首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!

我会在当天或者第二天及时回复,并且改进~~


一、变量

环境变量、位置变量、预定义变量

1、环境变量

env   #查看环境变量

2、位置变量

vi location.sh#!/bin/bashSUM=`expr $1 + $2`echo "$1 + $2 = $SUM"./location 12 34   #则12为第一个位置变量赋值为$1,32为第二个为$2。location为预定义变量

3、预定义变量

$#   #表示命令行中位置参数的个数$*   #表示所有位置参数的内容$?   #表示执行后的返回状态,0为正常$0   #表示当前执行的脚本或程序名称vi yu.sh#!/bin/bashname=bak-`date +%y%m%d`.tar.gztar zcf $name $* & >/dev/nullecho "execute $0 script"  echo "complete $#  object"echo "content is $*"

二、条件测试操作

1、文件测试

-d #判断是否为directory    [ -d /etc ] && echo "This is a directory"-e #判断是否exist          [ -e /var/log/messages ] && echo "exist"-f #判断是否为file         [ -f /etc/passwd ] && echo "This is a file"-r #判断是否有read         [ -r read ] && echo "premission is a read " -w #判断是否有write        [ -w write ] && echo "premission is a write"-x #判断是否有execute      [ -x execute ] && echp "premission is a execute"-l #判断是否为link-b #判断是否为black        [ -b /dev/sr0 ] && echo "This is a block"-c #判断是否为chatset      [ -c /dev/vcsa ] && echo "This is a charset"

2、整数值比较

-eq  #1等于2-ne  #1不等于2-gt  #1大于2-lt  #1小于2-ge  #1大于或等于2-le  #1小于或等于2user=`who | wc -l`   #$user为3[ $user -lt 4 ] && echo yes

3、字符串比较

=   #第一个字符串等于第二个字符串!=  #第一个字符串不等于第二个字符串-z  #检查字符串是否为空,对于未定义或赋予空值的变量视为空串[ $LANG = en_US.UTF-8 ] && echo yes  || echo no

4、逻辑测试

&&  #"而且",当前面和后面两个条件都成立时,整个测试命令的返回值才为0||  #"逻辑或",只要前面和后面两个条件中有一个成立时,整个测试命令的返回值即为0!   #"逻辑否",只有当指定的条件不成立时,整个测试命令的返回值才为0[ $LANG != zh_CN.UTF-8 ] && [ $user != 100 ] && echo yes    ##$user=3[ $LANG != zh_CN.UTF-8 ] || [ $user != 3 ] && echo yes

转载地址:http://usoxa.baihongyu.com/

你可能感兴趣的文章
TiDB EcoSystem Tools 原理解读(一):TiDB-Binlog 架构演进与实现原理
查看>>
关于html元素类型的详细解析
查看>>
node 执行 bat 命令:乱码、路径问题
查看>>
今日头条最新视频解析方法
查看>>
理解TCP/IP、UDP - 通过nodejs的net模块
查看>>
vue => 自定义指令
查看>>
typeof
查看>>
Angular 4.0 内置指令全攻略
查看>>
零距离接触阿里云时序时空数据库TSDB
查看>>
阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读...
查看>>
高效管理 Elasticsearch 中基于时间的索引
查看>>
Android NDK开发之旅10 JNI JNI数据类型与方法属性访问
查看>>
taro 接口封装和调用 以豆瓣api为例
查看>>
浏览器缓存技术介绍
查看>>
java架构师之用Redis轻松实现秒杀系统
查看>>
okHttp--Retrofit网络缓存设置总结
查看>>
nvm管理node.js版本(Windows系统)
查看>>
『高级篇』docker之kubernetes理解认证、授权(37)
查看>>
Apple Watch学习之路 数据存储
查看>>
SpringBoot记录HTTP请求日志
查看>>