• Shell变量


    环境变量

    Shell进程的环境变量,可以从当前进程传给fork出来的子进程,用printenv命令显示当前进程的环境变量。

    。。。

    本地变量

    只存在与当前Shell进程,set命令可以显示当前Shell进程中定义的所有变量和函数

    定义变量、定义和导出环境变量

    export VARNAME=value

    可以用unset删除已定义的环境变量或本地变量

    变量的引用

    变量的VARNAME,则${VARNAME}可以表示它的值。

    运行结果:

    命令的代换:‘或$(),建议使用$()进行替换

    执行结果:

    但‘和$()运行命令的方式又什么不同?

    $()可以分解为两个部分,一个是$符号,另外一个是()小括号$符的作用是变量替换,即用变量的值去替换当前的内容,小括号则是开一个子shell优先去执行小括号内部的命令
    在$(命令)中,命令部分的内容不会被父shell解析,而反引号的部分却会被解析,例如`\`,`$`,```???
    算术代换:$(())
    用于算术计算,$(())中的Shell变量取值将转换成整数,例如:

    运行结果:

     $(())中只能用+-*/和()运算符,并且只能做整数运算。
    转义字符:
    在Shell中被用作转义字符,用于去除紧跟其后的单个字符的特殊意义(回车除外),换句话说,紧跟其后的字符取字面值。
    创建一个文件名为“$ $”(中间有空格)的文件可以这样: $ touch $ $

    单引号:(保持引号内的所有字符都是字面值,字符串中不能出现单引号)

    双引号:(保持引号内所有字符的字面值)(但以下情况除外)

    $加变量名可以取变量的值
 反引号仍表示命令替换

    $表示$的字示值
    \`表示`的字示值

    "表示"的字示值

    \表示的字示值 除以上情况之外,在其它字符前面的无特殊含义,只表示字面值:

     

    eval 命令:

    告知shell取出eval的参数,重新运算求出参数的内容。eval可读取一连串的参数,然后再依参数本身的特性来执行。参数不限数目,彼此之间用分号分开。

    1、eval命令也可以用于回显简单变量,不一定是复杂变量

    2、 执行含有字符串的命令

    test.txt内容:hello shell world!

    myfile="cat test.txt"

    (1)echo $myfile  

    cat test.txt

    (2)eval echo $myfile 

    hello shell world!

    从(2)可以知道第一次扫描进行了变量替换,第二次扫描执行了该字符串中所包含的命令:

    3、命令还可以用来显示出传递给脚本的最后一个参数

    4、给每个值一个变量名

  • 相关阅读:
    encodeURIComponent与encodeURI的区别
    css实现强制不换行/自动换行/强制换行
    浏览器的visibilitychange 事件ie10以下不兼容
    判断IE版本的语句 [if lte IE 6]...[endif]
    jQueryr .on方法解析
    js判断IE6(推荐方法一)
    JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器
    js判断手机浏览器
    js数字格式化-四舍五入精简版
    jQuery scroll(滚动)延迟加载
  • 原文地址:https://www.cnblogs.com/Blog-day/p/My_Blog_Days-27.html
Copyright © 2020-2023  润新知