热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

shell变量和运算符

文章标题:shell变量和运算符。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类


     -本地变量  -影响变量的命令
     -环境变量  -引号
     -变量替换  -运算符
     -位置变量  -表达式替换
     -标准shell变量  -运算符的优先级
     -特殊变量

    -变量:
     -什么是shell变量?
     -本地变量
     -环境变量
     -变量替换(显示变量)
     -位置变量
     -标准变量
     -特殊变量
     -影响 变量的命令

    -本地变量:
     -本地变量在用户现在的shell生命期的脚本中使用
     -variable-name=value
     -set显示本地所有的变量
     -readonly variable-name
    #LOCALTEST="test"
    #echo ${LOCALTEST}
    test
    #echo $LOCALTEST
    test
    #set  通过set查看变量
    #exit  退出后查看一下还是否存在LOCALTEST变量
    #readonly LOCALTEST
    #LOCALTEST="test"
    #readonly 查看当前shell有那些只读变量
    #readonly -p
    -环境变量
     -环境变量用于所有用户进程(经常称为子进程).登录进程称为父进程.shell中执行的用户进程均称为子进程.不像本地变量(只用于现在的shell)环境变量可用于所有子进程,这包括编辑器,脚本和应用。
     -$HOME/.bash_profile(/etc/profile)
     -export
     -env
    #cat /etc/profile
    #export Antiy="xi'an"
    #env  然后查找变量Antiy
    #export  也可以查看
    #readonly Antiy 设置为只读
    #export Antiy="xidian" 看是否可以修改,会提示不可以,因为只读了。

    -变量替换:
     -用变量的值替换它的名字。
     -echo
     -在变量名前加$,使用echo命令可以显示单个变量取值。
    #testvar="this is a test"
    #echo $testvar
    this is a test
    #echo ${testvar}
     变量替换-续
    ${Variable name}  显示实际值到variable name
    ${Variable name:+value} 如果设置了variable name,则显示其值value,否则,为空!
    ${Variable name:?value} 如果未设置variable name,显示用户定义错误信息value!
    ${Variable name:-value} 如果未设置variable name, 则显示其值value
    ${Variable name:=value} 如果未设置variable name,设置其值,并显示
    #echo ${testvar:+"xidian"}
    xidian
    #echo ${testvar1:+"xidian"}
    为空
    #echo ${testvar1:?"no defined"}
    bash:testvar1:no defined
    #echo ${testvar1:-"xidian"}
    #echo ${testvar:-"xidian"}
    xidian
    #echo ${testvar:="xidian"}
    this is a test
    #echo ${testvar2:="xidain"}
    xidian
    #echo $testvar2
    xidian

    -变量清除:

    #echo $testvar
    this is a test
    #unset testvar
    #echo $testvar
    空
    #echo $testvar2
    #readonly testvar2
    #unset testvar2
    -位置变量:
     -位置变量表示$0,$1,$2,... ...$9
     -向脚本中使用位置参数
     -向系统命令传递参数
    example01:
    #!/bin/bash
    #parm01
    echo "这是脚本的名称:$0"
    echo "这是脚本的第1个位置参数:$1"
    echo "这是脚本的第1个位置参数:$2"
    echo "这是脚本的第1个位置参数:$3"
    echo "这是脚本的第1个位置参数:$4"
    echo "这是脚本的第1个位置参数:$5"
    echo "这是脚本的第1个位置参数:$6"
    echo "这是脚本的第1个位置参数:$7"
    echo "这是脚本的第1个位置参数:$8"
    echo "这是脚本的第1个位置参数:$9"
    example02:
    #!/bin/bash
    #parm02
    find   /home/shell/ -name $1 -print

    -标准变量:
     -bash默认建立了一些标准环境变量,可在/etc/profile中定义。
     -EXINIT
     -HOME
     -IFS
      echo $IFS
      IFS=':'
     -LOGNAME
     -MAIL
     -MAILCHECK
     -MAILPATH
     -TERM
     -PATH
     -TZ
     -PS1
      #set | grep "PS"
      PS1='[\u@\h \w]\$ '
      PS2='>'
     -PS2
     -PWD
     -SHELL
     -MANPATH
     -TERMINFO
    -特殊变量:
     -$# :传递到脚本的参数个数
     -$* :以一个单字符串显示所有向脚本传递的参数,与位置变量不同,此选项参数可超过9个。
     -$$ :脚本运行的当前进程ID号
     -$! :后台运行的最后一个进程的进程ID号
     -$@ :与$*相同,但是使用时加引号,并在引号中返回每个参数
     -$- :显示shell使用的当前选项,与set命令功能相同
     -$? :显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误
    #!/bin/bash
    #parm01
    echo "这是脚本的名称:$0"
    echo "这是脚本的第1个位置参数:$1"
    echo "这是脚本的第1个位置参数:$2"
    echo "这是脚本的第1个位置参数:$3"
    echo "这是脚本的第1个位置参数:$4"
    echo "这是脚本的第1个位置参数:$5"
    echo "这是脚本的第1个位置参数:$6"
    echo "这是脚本的第1个位置参数:$7"
    echo "这是脚本的第1个位置参数:$8"
    echo "这是脚本的第1个位置参数:$9"
    echo "显示参数个数:$#"
    echo "显示脚本全部参数:$*"
    echo "显示进程ID:$$"
    echo "显示前一命令运行后状态:$?"
    影响变量的命令:
     -declare
     -export
     -readonly
     -set
     -shift
     -typeset
     -unset
    引号、双引号、单引号、反引号、反斜杠
    运算符、运算符类型


推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Pycharm编辑器取消双击shift弹出搜索框的方法
    在使用Pycharm编辑器时,双击shift会弹出搜索框界面,导致输入失去焦点,给用户带来不便。本文介绍了取消双击shift弹出搜索框的方法:在Pycharm中双击shift,输入registry并回车,找到“ide.suppress.double.click.handler”并勾选后,关闭即可解决该问题。通过这个方法,你再也不会被shift问题困扰了。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了Shell中for命令的基本格式和用法,通过提供一个值列表来迭代执行一系列命令。同时还介绍了如何读取列表中的值,并给出了for命令与其他命令的结合使用示例。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 从U ... [详细]
  • crontab 自动执行定时任务时,命令无法执行的解决方案
    为什么80%的码农都做不了架构师?最近在工作中需要使用crontab执行定时任务,处理memcacheq消息队列里的数据,但是发现在 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
author-avatar
dasda
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有