Shell学习笔记——变量

摘要:
变量赋值不需要$符号,当=前后没有空格时,可以使用=`命令'将命令运行的结果值赋值给过去。这里,后引号$0$1$2-$9用于指示命令行的参数,并且可以通过shift将以下参数移到前面以获得更多参数。Read可以读取参数,也可以通过重定向从文件中读取参数,最后一个参数将读取所有剩余内容。如果不够,则为空字符串。IFS用于设置读取时的分隔符。是最后一个命令的错误代码。HOME是用户的主目录,也可以用~表示。

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

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

$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

免责声明:文章转载自《Shell学习笔记——变量》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS新建项目结构规范5602. 将 x 减到 0 的最小操作数 双指针下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Shell 变量

Shell 变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号...

java枚举类型

public class TestEnum { /*最普通的枚举*/ public enum ColorSelect { red, green, yellow, blue; } /* 枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样....

ansible(一)

一.目的 代码发布系统 二.准备工作:干净的虚拟机准备4个 准备一个虚拟机后克隆出另外三个,注意,克隆前要将虚拟机关机 三.可以用来代码发布的工具 puppet ansible slatstack 四.ansible(批量在远程主机上执行 命令) 1.下载ansible 第一步:下载wgetyum install wget第二部:下载epel源wget...

ZooKeeper shell

# 1. 进入Zookeeper shell sh /usr/local/kafka/bin/zookeeper-shell.sh localhost:2181 # 2. 基本操作 ### 2.1 创建节点 create [-s] [-e] path data acl # 其中,-s 或-e 分别指定节点特性,顺序或临时节点,若不指定,则表示持久...

语言基础(12):struct/union字节对齐

1、什么是字节对齐 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简单地顺序排列,这就是内存对齐。 2、为什么要字节对齐 某...

函数的调用过程与出入栈

函数调用的过程 线程执行的基本行为是函数调用,每次函数调用的数据都是通过Java栈传递的。Java栈与数据结构上的栈有类似的含义,它是一块先进后出的数据结构,只支持入栈和出栈两种操作。Java栈的主要内容是栈帧。每次函数调用都会有一个对应的栈帧被压入Java栈,每次函数调用结束(无论是正常返回或者抛出异常),都会有一个栈帧被弹出Java栈。 如图所示,函数...