Shell学习笔记-Shell变量

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

一、变量的命名变量名必须以字母或下划线开头,由字母、数字、或下划线组成,变量名的长度不能超过255个字符。

二、变量的分类1. 用户自定义变量

2. 环境变量

3. 位置参数变量

4. 预定义变量

三、用户自定义变量用户自定义变量是“局部变量”,只能在当前的Shell中生效

1. 定义变量变量名=变量值

示例:

注意:等号前后不能有空格,否则会出现以下错误提示:

2. 变量调用$变量名 或 ${变量名}

示例:

3. 变量叠加示例:

或:

4. 删除变量unset 变量名

示例:

5. 查看变量1) env:查看所有的环境变量

2) set:查看所有的变量(包括用户自定义变量)

四、环境变量环境变量是“全局变量”,在当前Shell和这个Shell的所有子Shell中生效

1. 设置环境变量export 变量名=变量值

变量名=变量值

export 变量名

示例:

注意:设置环境变量时,建议使用大写,避免与用户自定义变量或系统命令(都是小写的)冲突。

2. 删除环境变量,环境变量调用,查看环境变量用户自定义变量的使用方式相同

3. 设置PS1环境变量PS1环境变量会影响用户提示符信息,示例如下:

五、位置变量1. $nn为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}。

示例:

#!/bin/bash

a=$1b=$2sum=$(($a+$b))echo$sum

2. $*这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

#!/bin/bashforiin"$*"doecho$idone#运行:test.sh123#输出:123#解释:$*中的所有参数被看成是一个整体,所以这个for循环只会循环一次

3. $@这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

#!/bin/bashfor iin"$@"doecho$idone

#运行:test.sh123#输出:

123#解释:$@中的每个参数被看成独立的,所以这个for循环会循环多次

4. $#这个变量代表命令行中的所有参数的个数

#!/bin/bashecho$#

#运行:test.sh123#输出:3

六、预定义变量1. $?最后一次执行的命令的返回状态。如果这个值为0,则说明上一个命令执行正确;如果这个值不为0,则代表上一个命令执行的错误码。

示例:

2. $$当前进程的进程号(PID)

示例:

3. $!后台运行的最后一个进程的进程号(PID)

#!/bin/bashfind/root -name"test.sh"&echo$!

七、read命令接受键盘输入

1. 参数说明-p "提示信息": 在等待read输入时,输出的提示信息

-t 秒数:read命令会一直等待用户输入,使用此参数可以指定等待时间

-n 字符数:read命令只接受指定的字符数,就会继续执行

-s : 隐藏输入的数据,适用于机密信息的输入

2. 示例#!/bin/bash

read-p"please input username:"username

read-p"please input passWord:"-s passwordecho-e"\n"read-p"please input sex[F/M]:"-n1sexecho-e"\n"echo"Welcome $username[$sex]"

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航