zoukankan      html  css  js  c++  java
  • Shell学习笔记——变量

    变量赋值时不需要$符号,且=前后不能有空格

    赋值时可以用=`命令`,将命令运行的结果值赋值过去,这里用到的是反引号

    $0 $1 $2 - $9表示命令行的参数,并且可以通过shift将后面的参数移到前面来以获得更多参数

    read可以读入参数,也可以通过重定向从文件读入,并且最后一个参数会把剩下所有内容读入,不够则为空串。IFS用于设置读取时候的分隔符。

    $* 和$@是所有参数,不加双引号则单个单词,加双引号则前者把所有的处理成一个,后者把双引号引起来的处理成一个

    $?是上一条命令的错误码。$PIPESTATUS是前一次管道中命令的返回值,是个数组,不能逐元素处理,否则会被上条命令覆盖,需要一次处理

    可以通过unset或者将变量赋成空串来删除变量

    因为使用未赋值变量时默认值为0,所以如果对变量拼写错误的话很难发现

    $RANDOM返回随机数0-32767之间,但被赋值后失去作用

    $SECONDS每过1秒加1,可中途赋值相当于重设时钟,但一旦被删除则功能消失,赋非整数相当于赋0

    ${FUNCNAME[i]}是当前所在函数名,且i从0开始变化,可以获得调用栈,类似的BASH_SOURCE是文件名,BASH_LINENO是行号

    PWD当前工作目录,OLDPWD上一个工作目录。可用'pwd'获取当前目录,cd - 可以退回之前目录。HOME是用户主目录,也可以用~表示。

    time可以获得用户模式和系统模式的调用时间以及总时间,同时可以通过TIMEFORMAT设置时间格式

    $PPID,调用当前脚本的进程ID,$$自身的进程ID

  • 相关阅读:
    nanoPI kernel compile record
    Golang go get第三方库的坑
    Python解析Linux命令行
    Linux:dd命令
    Golang异常处理
    Golang自定义包导入
    Golang覆盖写入文件的小坑
    Golang数据类型总结及其转换
    ASP.NET学习之页面传值(8)_Application传值
    ASP.NET学习之页面传值(7)_Cookie传值
  • 原文地址:https://www.cnblogs.com/unionfind/p/2932393.html
Copyright © 2011-2022 走看看