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

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

首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!
我会在当天或者第二天及时回复,并且改进~~



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

1、环境变量

env   #查看环境变量

2、位置变量

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

3、预定义变量

$#   #表示命令行中位置参数的个数
$*   #表示所有位置参数的内容
$?   #表示执行后的返回状态,0为正常
$0   #表示当前执行的脚本或程序名称

vi yu.sh
#!/bin/bash
name=bak-`date +%y%m%d`.tar.gz
tar zcf $name $* & >/dev/null
echo "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小于或等于2

user=`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
时间: 2024-09-27 15:43:06

Shell基础之-变量、比较、测试的相关文章

Shell基础之-awk命令

Shell基础之-awk命令 首先,大家如果看到有什么不懂的地方,欢迎吐槽!!! 我会在当天或者第二天及时回复,并且改进~~ awk编程 awk是一种编程语言.gawk.是最新版本,当前的linux版本用的都是gawk awk是gawk的软链接 awk工作原理 BEGIN #在未读取文件行之前执行 主输入循环 (main input loop),反复执行,直到终止条件触发 END #在读取文件行完毕后执行 1.在shell命令行输入命令调用awk #awk [-f 域分隔符] 'awk cmd'

linux shell 基础

ls 命令 #查看所有文件,包括隐藏文件(linux 隐藏文件是.开头的) ls -a #添加 -F参数 显示区分文件和目录(目录后面带斜杠),F 参数大写 ls -F pwd输出当前目录 pwd # .表示当前目录 # .. 表示父级目录 # -R 列出子目录 ls -R # 列出文件详细信息 -l 小写 ls -l # 过滤 通配符*代表零个或多个字符,?表示一个字符 ls -l *sh #[si] 表示[]对应一个s或者i ls -l connect_2_ecs.[si]h # [a-z]

Linux bash Shell中的变量类型详解

  这篇文章主要介绍了Linux bash Shell中的变量类型详解,变量类型共分为本地变量.局部变量.环境变量.位置变量和特殊变量等,需要的朋友可以参考下 在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一.bash变量类型: 本地变量 局部变量 环境变量 位置变量 特殊变量(内置) 二.本地变量: varname=value:作用域为整个bash进程可以使用; 变量命名规范: 1. 只能含字母.数

Shell中的变量使用小结

  这篇文章主要介绍了Shell中的变量使用小结,本文总结了变量的语法.常见使用形式等内容,并分别给出代码示例,需要的朋友可以参考下 变量的定义,只能以字母和下划线开始,区分大小写,可以包含数字 字母下划线.详见官方手册    代码如下: [root@svn shell_example]# yourname='Linux' [root@svn shell_example]# echo $yourname Linux [root@svn shell_example]# YourName="linu

awk调用shell并将变量传递给shell awk与shell之间的变量传递

 在Shell脚本中调用awk是非常自然和简单,本文我们来看看awk调用shell并将变量传递给shell,awk中使用shell中的变量,awk向shell变量传递值     在Shell脚本中调用awk是非常自然和简单的,如果需要调用shell脚本/命令,则需要使用system()函数,如果需要将变量传递给被调用的shell,则写为 system("sh my.sh " $var) 注意第二个引号前有一个空格. awk调用shell,并将变量传递给shell,看下面的演示,就一下明

shell基础(转)

  shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux的用户和用户组管理 http://bbs.chinaunix.net/forum/viewtopic.php?t=438660&highlight=wingger shell基础二:查找技巧,find及xargs的使用http://bbs.chinaunix.net/forum/viewtopic

linux中shell中的变量使用说明

变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 - $n"的形式输出所有参数. $@ 所有参数列表.如"$@"用「"」括起来的情况.以"$1" "$2" - "

Shell基础之-cut命令

Shell基础之-Cut命令 首先,大家如果看到有什么不懂的地方,欢迎吐槽!!! 我会在当天或者第二天及时回复,并且改进~~ cut命令用于从标准输入文件或文本文件中按域或行提取文本 cut [option] file cut命令选项及其意义 -c #指定提取的字符数或字符范围 -f #指定提取的域数或域范围 -d #改变域分隔符 cut -c后跟数字表示字符数或字符范围,共有三种表示方式 -cn 表示第n个字符 -cn-m 表示n-m个字符 -cn,m 表示n.m两个字符 cut -f后跟数字

Shell基础之-sed命令

Shell基础之-sed命令 首先,大家如果看到有什么不懂的地方,欢迎吐槽!!! 我会在当天或者第二天及时回复,并且改进~~ sed 是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑 sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件 sed命令调用的三种方式 1.在shell命令行输出命令调用sed sed [option] 'sed cmd' file 2.将sed命令插入脚本 sed [option] -f 'sed.sh' file vi sed.sh sed要调用