shell中特殊变量及if条件】的更多相关文章

特殊变量: linux中shell变量$#,$@,$,$,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如 $ … $n"的形式输出所有参数. $@ 所有参数列表.如" … "$n" 的形式输出所有参数. $# 添加到Shell的参数个数 $ Shell本身的文件名 $-$n…
shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢? 这确实是一个困扰很久的一个问题? how it can be an issue? 事实上, 在shell中, 你可以认为存在数据类型, 只有三种, 即: 整数变量, 字符串变量, 文件变量. 也可以认为, 不存在数据类型, shell在 定义变量的时候, 总是 "默认"的把变量 认为是 字符串. 那关键就在于: 你是如何使用, 如何操作 shell变量的, 根据你的操作,你的 命令, 你的操作符 来决定该s…
变量的分类 系统环境变量 系统本身所有,通常为大写字母 系统变量通过 set 或 declare 指令进行查看 UDV 变量(user defined variable ) 用户创建和维护,建议大写 原因: 避免冲突与混淆,因为 Linux 系统中命令全部采用小写的方式 变量的属性和定义 变量的属性 1) Shell 中所有变量定义都为字符串. 2) 变量区分大小写,如:foo 和 Foo 是两个不同的变量 3) 变量必须以字母或下划线开头,不得有", : "等特殊字符. 变量的声明…
今天刚刚在看一点C Shell的内容,发现一个挺好玩的东西!就是环境变量可以像数组那样来设置!具体设置语法如下: set variable=(element1 element2 ...) //注意元素之间用空格来间隔 比如我在C Shell中运行了这么一条语句 set var=(123 def hij),那么他就表示设定了一个变量数组,其中var[1]是123,var[2]是def!很奇怪的是它这个数组不是从0开始的,var[0]是一个空的字符串!或许这个var[0]像C语言主函数的argv[0…
在SHELL中定义变量比较直接,无类型区别,不需要像Java那样定义好是String还是int等. 声明变量需要遵守或者注意的几点: 变量名和等号之间不能有空格. 变量名首字符必须为字母. 变量名里可以使用下划线. 变量名中间不能有空格,美元符号$,标点符号. 变量名不能使用关键字. 最近迷上思维导图来画图,帮自己理清思路.…
4.1 系统变量 1. 常用系统变量 $HOME.$PWD.$SHELL.$USER等 2.案例实操 (1)查看系统变量的值 [atguigu@hadoop101 datas]$ echo $HOME /home/atguigu (2)显示当前Shell中所有变量:set [atguigu@hadoop101 datas]$ set BASH=/bin/bash BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() 4.2 自定义变量 1.基本语法 (1)定义变量:…
一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78的四则运算及求模结果       2> 使用bc实现小数运算操作:以交互方式计算12.34与56.78的四则运算结果,另外再以非交互方式重复上述计算,最多显示4位小数 步骤: 1)使用expr命令 乘法操作应采用 \* 转义,避免被作为Shell通配符:参与运算的整数值与运算操作符之间需要以空格分开,引…
0.[[]] [] (())的对比 1.[[]]支持正则表达式 0.[[]] [] (())的对比 [[ ]] 对数字的比较不友好,所以使用 if 判断条件时,建议用(())来处理整型数字,用[[]]来处理字符串或者文件.   用法 说明 脚本 支持逻辑运算符 (()) ((expression)) 不需要注意空格 在 (( )) 中使用变量可以加也可以不加$前缀,(( )) 会自动解析变量名 只用于进行整数运算 可以使用<.<=.>.>=等进行整数运算 表达式可以只有一个,也可以…
原文地址:http://blog.csdn.net/abc86319253/article/details/46341839    在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的变量和函数 的变量的作用域问题可能令你费解,在这里梳理一下这个问题.   (1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或 被显示删除的地方为止.   例1:脚本变量的作用域 #!/bin/bash #define the function ltx_f…
1.常用系统变量 $HOME.$PWD.$SHELL.$USER等 2.自定义变量 基本语法: (1)定量变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量 注意不能unset(机器重启就没有了) 变量定义规则 (1)变量名称可以由字母.数字.和下划线组成,但是不能以数字开头,建议大写 (2)等号两侧不能有空格 (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算. (4)变量的值如果有空格,需要使用双引号或单引号括起来 案例实操 (1)定…
Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量. 所以管理环境变量的文件也分为系统级和用户级的,下面贴一个网上找到的讲的比较明白的文件介绍(略作修改)[1]: 系统级: /etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户.该文件一般是调用/etc/bash.bashrc文件. /etc/bash.bashrc:系统级的bashrc…
答:在子shell执行,那么变量的值总是不能如愿以偿的改变,示例如下: #!/bin/sh var="jello" cat "jello.txt" | while read line do var=${line} done echo "var=${var}" 看见示例中的管道了吗!这是个陷阱,会导致while在子shell 中执行,以至于var的值并没有被改变 解决方法: #!/bin/sh while read line do var=${li…
原文链接:http://www.361way.com/shell-eval-variable/4957.html shell 中经常会用到变量的嵌套的情况.比如,单个或多个变量的值作为变量名,再对该变量名取$获取其内部的变量的情况,这种脚本写起来很难搞,还好有eval 命令方便我们处理这种情况.便于理解,先来一个示例: #!/bin/bash a='my' b='site' my_site='my site www.361way.com' echo a_b is "$a"_"…
在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题. (1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. 例1:脚本变量的作用域#!/bin/bash#define the function ltx_funcltx_func(){   echo $v1   #modify the variable v1   v1=200 }#define the…
1.用Python Shell设置或获取环境变量的方法: 设置系统环境变量 os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型 os.putenv('环境变量名称', '环境变量值') 获取系统环境变量 os.environ['环境变量名称'] os.getenv('环境变量名称') 实例一. In [52]: output=subprocess.check_output(["head -c 16 /dev/urandom | od -An -…
1. 单引号 使用单引号的情况下,不管里面的是否有变量或者其他的表达是都是原样子输出 2. 双引号 如果其定义变量的时候使用双引号的话,则里面的变量或者函数会通过解析,解析完成后再输出内容,而不是把双引号中的变量名以及命令原样子输出. 3. 不使用引号 用于一些简单字符数字的定义与双引号类似 使用规则 解释 单引号 所见即所得,即输出时会将单引号内的所有內容都原样输出,或者描述为单引号里面看到的是什么就会输出什么,这称为强引用 双引号 (默认) 输出双引号内的所有内容:如果内容中有命令(要反引下…
一.什么是变量 变量在 bash 环境中是非常重要的,简单的说,就是让某一个特定字符串来代表不固定的内容.举例: 那就是:『 y = ax + b 』这东西,在等号左边的(y)就是变量,在等号右边的(ax+b)就是变量内容. 要注意的是,左边是未知数,右边是已知数 二.变量的读取与使用规则: ①  使用echo命令读取变量 语法规则: [root@www ~]# echo $variable 例: [root@localhost ~]# echo $PATH /usr/java/jdk1.7.0…
http://blog.csdn.net/ltx19860420/article/details/5570902 1. shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. #!/bin/bashltx_func() {   echo $v1   v1=200 }v1=100ltx_funcecho $v1结果:100200 解析:脚本变量v1的作用域从被定义的地方开始,到shell结束.调用函数ltx_func的地方在变量v1的作用域…
变量 声明即用 a=2 b="123" 调用 ${varName}或者 $varName echo $b echo ${a} 常见变量 $?:判断上一个语句是否成功 $0:执行脚本文件名称 $1:第1个参数 $n:第n个参数 $*:参数分别是什么 $#:参数个数 示例 demo1.sh echo "脚本文件名称:$0" echo "第1个参数:$1" echo "所有的参数:$*" echo "参数个数:$#&quo…
$$ :Shell本身的PID(ProcessID) $! :Shell最后运行的后台Process的PID $? :最后运行的命令的结束代码(返回值) $- :使用Set命令设定的Flag一览 $* :所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 … $n"的形式输出所有参数. $@ :所有参数列表.如"$@"用「"」括起来的情况.以"$1" "$2" … "…
1. 变量赋值 语法:var="saaaa" PS: 等号两边不能有空格 2. 脚本示例如下: #!/bin/sh # Get bug activity info # usage get_bug_activity <bug_id_list_file> if [ $# -lt 2 ]; then echo "Usage:"; echo "$0 <blk_pair_id_list_file> <dir>"; exi…
$0: 执行脚本的名字 $*和$@: 将所有参数返回 $#: 参数的个数 $_: 代表上一个命令的最后一个参数 $$: 代表所在命令的PID $!: 代表最后执行的后台命令的PID $?: 代表上一个命令执行是否成功的标志,如果执行成功则$? 为0,否则不为0…
var a = undefined; ->false var a = 0; ->false var a = 0.0; ->false var a = NaN; ->false var a = ""; ->false var a = null; ->false var a = false; ->false var a ->false function a(){ }; //调用无返回值的函数,默认返回值是undefined a() ->…
${str-newStr} 仅当str为null的时候替换 ${str:-newStr} 当str为null或者str为空字符串的时候替换 综上,-号,当str没有内容,则替换, :号只是增加了空字符串的情况.注意,结果是表达式的值,并没有改变原有的str ${str+newStr} 仅当str有内容的时候替换 ${str:+newStr} 当str不为null的时候替换 综上,+号,当str有内容,则替换, :号只是增加了空字符串的情况. ${str=newStr} ${str:=newStr…
shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, 这有助于shell解释器的写法. 在调用方法上, 跟 命令的方式是一样的, 也是 函数名 arg1 arg2 ... 函数名就相当于命令名. 对于一个命令来说, 格式是: ls /etc 命令名 [options] arg... 所以函数也是一样 funcName arg1 arg2 ..., 这里…
变量: 1 . 变量声明 直接使用变量 + 赋值 #!/bin/bash NAME='HELLO WORD' echo $NAME 使用 declare 关键字声明 declare(选项)(参数) +/-:"-"可用来指定变量的属性,"+"则是取消变量所设的属性: -f:仅显示函数: r:将变量设置为只读: x:指定的变量会成为环境变量,可供shell以外的程序来使用: i:[设置值]可以是数值,字符串或运算式. #!/bin/bash declare -i NAM…
编程语言中都有条件判断,shell编程也不例外,下面我们来看一下shell中应该怎么使用if条件判断 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script07.sh 开始编写script07.sh的脚本,脚本内容为: #! /bin/sh if [ 3 -gt 2 ] then echo "3>2" fi if [ 3 -lt 2 ] then echo "3<2" else ech…
变量在很多编程语言中都有,Shell中也不例外,我们下面看一下Shell中的变量怎么使用: 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script02.sh 开始编写script02.sh的脚本,脚本内容为: #! /bin/sh long_string="this is a test" echo $long_string num1=20 num2=30 echo $(($num1+$num2)) echo &quo…
shell中特殊变量IFS的使用 IFS是内部字段分隔符(internal field separator).默认情况下,bash shell会将空格.制表符.换行符 当做字段分隔符. IFS=$'\n':;" 就是将换行符.冒号.分号.双引号作为字段分隔符 IFS='\n' //将字符\和字符n作为IFS的换行符. IFS=$'\n' //真正的使用换行符做为字段分隔符. IFS='\n':;" //将反斜杠.n.冒号.分号和双引号作为字段分隔符. shell 将字符串分割为数组 1…
为什么要学习Shell编程 1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. 2)对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本. 3)对于大数据程序员来说,需要编写Shell程序来管理集群. Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序, 用户可以用Shell来启动.挂起.停止…