`
- 浏览:
237668 次
- 性别:
- 来自:
北京
-
Shell Variable and Operator
- 变量是放在内存中的一定的存储单元,存储单元中存放着某个值,这个值可以改变.
- 本地变量
.本地变量在用户现在的SHELL生命期的脚本中使用.
.variable-name=value
.set 显示本地所有变量
.readonly variable-name 设置变量为只读
- 环境变量
.环境变量用于所有用户进程(经常称为子进程).登录进程称为父进程.SHELL中执行的
用户进程均称为子进程.不象本地变量(只用于现在的SHELL),环境变量可用于所有子
进程,包括编辑器,脚本和应用.
.$HOME/.bash_profile(/etc/profile) 设置环境变量的文件
.export 设置环境变量命令
.env 显示环境变量
- 显示变量
.echo $variable-name
.${variable-name:+value} 如果设置了该变量,则显示其值,否则为空.
.${variable-name:?value} 如果未设置该变量,显示用户定义的信息value.
.${variable-name:-value} 如果未设置该变量,则显示value
.${variable-name:=value} 如果未设置该变量,设置其值,并显示.
- 位置变量
.位置变量表示S0,$1,... ... $9
.在脚本中使用位置参数
招待脚本时 ./Parameter Test parm1 parm2 parm3
#!/bin/bash
#Parameter Test
echo "This is the name of the script:$0."
echo "This is the 1st position parameter: $1."
echo "This is the 2nd position parameter: $2."
echo "This is the 3rd position parameter: $3."
echo "This is the 4th position parameter: $4."
echo "This is the 5th position parameter: $5."
echo "This is the 6th position parameter: $6."
echo "This is the 7th position parameter: $7."
echo "This is the 8th position parameter: $8."
echo "This is the 9th position parameter: $9."
.向系统命令传递参数
./find.sh CNURevamp
#!/bin/bash
#find.sh
find /home/leo/svn/office/webapps -name $1 -print
- 标准变量
. bash 默认建立了一些标准环境变量,可在/etc/profile中定义.
EXINIT HOME IFS LOGNAME MAIL MAILCHECK MAILPATH TERM
PATH TZ PS1 PS2 EDITOR PWD SHELL MANPATH TERMINFO
- 特殊变量
.$# 传递到脚本的参数个数
.$* 以一个单字符串显示所有向脚本传递的参数,与位置变量不同,
此选项参数可超过9个
.$$ 脚本运行的当前进程ID号
.$! 后台运行的最后一个进程的ID号
.$@ 显示参数列表
.$- 显示SHELL 使用的当前选项,与set命令相同
.$? 显示最后命令的退出状态,0表示没错,其它任何值表示有错误.
- 影响变量的命令
.unset variable-name 清除变量
.declare
-- 设置或显示变量
-- -f 只显示函数名
-- -r 创建只读变量(typeset
-- -x 创建转出变量(export)
-- -i 创建整数变量
-- 使用+代替-,可以颠倒选项的含义
.export
-- 用于创建传给子SHELL的变量
-- --表明选项结束,所有后续参数都是实参
-- -f 表明在'名-值' 对中的名字是函数名.
-- -n 把全局变量转换成局部变量.命令的变量不再传给SHELL.
-- -p 显示全局变量列表
.shift [n]
-- 用于移动位置变量,调整位置变量,使$3的值给$2,$2的值给$1.
.typeset declare的同义词.
- 引号
.双引号:可引用除字符$ ` \ 外的任意字符或者字符串
.单引号:可引用任意字符或字符串
.反引号:用于命令替换.设置系统命令的输出到变量.SHELL将反引号中的内容作为一个
系统命令,并招行其内容.
.反斜杠:如果一个字符有特殊含义,反斜线防止SHELL误解其含义,即屏蔽特殊含义.
特殊含义字符:& * + ^ $ ` " | ?
- 运算符
. $[] 表示形式告诉SHELL对方括号中的表达式求值. 例: $[2+8]
$[] 可以接受不同进制的数字 [10#n]表示从2到36的任何进制.
. 赋值运算符 let cont=$cont + $change
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
2. **basic_operator.sh** - 这个文件可能是关于Shell脚本中基本操作符的示例,如算术操作符(+,-,*,/,%),比较操作符(==,!=,<,>)和逻辑操作符(&&,||)。 3. **special_variable.sh** - Shell脚本中的...
### Shell编程概述 #### Shell编程语言简介 Shell编程是一种基于Unix/Linux系统中的脚本语言,它主要用于自动化任务处理、系统管理以及其他与操作系统交互的工作。Shell脚本由一系列Shell命令组成,这些命令通常...
进行数学计算时,Bourne Shell(sh)使用`expr`命令,例如`ARG1 operator ARG2`,但这种方式较为繁琐。Bash Shell提供了更简洁的语法,如`fish=$[1+5]`进行整数运算。对于浮点数计算,可以利用`bc`命令,例如`scale=...
This includes issues related to equality checks, variable declarations, and symbolic expressions. ##### 2.4 Basic Operations SymPy supports basic operations such as addition, subtraction, ...
PEP 526: Syntax for variable annotations PEP 515: Underscores in Numeric Literals PEP 525: Asynchronous Generators PEP 530: Asynchronous Comprehensions PEP 487: Simpler customization of class ...
`$` 美元符号 (Variable Expansion) - **用途**:用于变量展开。 - **示例**: - `echo $USER`:打印当前用户名。 - `echo ${PATH}`:打印 PATH 变量的值。 ##### 9. `{}` 大括号 (Braces) - **用途**:用于...
Some Final Comments on the MOV Instructions <br>4.9 Laboratory ...SHELL.ASM File 4.9.4 Assembling Your Code with MASM 4.9.5 Debuggers and CodeView' 4.9.5.1 A Quick Look at CodeView 4.9....
About_shell_variable.help.txt About_signing.help.txt About_special_characters.help.txt About_switch.help.txt About_system_state.help.txt About_types.help.txt About_commonparameters.help.txt About_...
* shell:DOS命令 ,壳 七、数据类型 * object:对象 * type:类型 * scalar:标量 (的) * represent:代表 * integer:整数 * int:整型 * float:浮点型 * const:常数( =constant) * expression:表达式 * ...
* Variable:可变的、变量 * Value:值 * Assignment:赋值 * Bind:绑定 * Invoke:调用 * Binding:绑定关系 * Rebound:回跳、反弹 * Diagram:图解、关系图 * Transcript:抄本、脚本 * Compound:混合物、复合...
Variable Usage ................................................................................................................34 The Continuation Variable ...............................................
-- ask the operating system for more and return that. 6. Otherwise: A. Is the current space available (check is_available from the mem_control_block)? B. If it is: i) Is it large enough (check ...
/* Okay, we're initialized and ready to go */ has_initialized = 1; } 现在,为了完全地管理内存,我们需要能够追踪要分配和回收哪些内存。在对内存块进行了 free 调用之后,我们需要做的是诸如将它们...