和我一起迎接明天的太阳吧

klaus08

焦虑源于行动的匮乏

shell编程(二)

Shell程序的的变量及参数

在shell程序中,数据用变量来存储,使用变量时不需要声明,默认所有变量类型为字符串类型.
shell程序的参数及变量
这里$*,"$@"和$@的效果是一样的.

使用set设置位置参数.
形如

set $(ls -l)

这样的命令则会把ls -l的结果以此作为他的参数.

常见的环境变量

环境变量说明
$HOME当前用户主目录
$PATH用以搜索命令的目录列表,用:分隔
$PS1命令提示符,通常是用$.root用户则是#
$PS2二级提示符,用来提示后需输入,通常是>
$IFS内部与分隔符

变量的声明

在shell中,使用一般变量可以不用声明,可对于一些特殊变量需要声明.
声明格式:

declare [options] [name=[value]]
typeset [options] [name=[value]]
#unset用于删除shell变量
unset name

常用选项options:
-a 声明一个数组array
-f 声明一个函数function
-i 声明一个整数integer
-r 声明只读变量readonly
-x 声明全局变量,可供子进程使用

注:赋值语句中,等号前后不能有空格.
  整型变量不可以被赋非整型的值

  
set用于查看本地定义的shell变量

变量引用

echo $ {name:-string}
当变量(name)存在时,显示变量的值,否则显示string
echo $ {name:=string}
当变量(name)存在时,显示变量的值,否则把string赋给name,并输出
echo $ {name:?string}
当变量(name)存在时,显示变量的值,否则显示name:string
echo $ {name:=string}
当变量(name)存在时,显示变量的值,否则显示空

  • 用单引号将值括起来,则不允许对括号中的变量进行替换,且不做shell解释,即屏蔽了括号中特殊字符的含义
    例如:
j@Ubuntu:~/pro_shell$ x='$PATH'
j@Ubuntu:~/pro_shell$ echo $x
$PATH
  • '\'在Bash中被解释为转义字符,用于去除一个单个字符的特殊意义,保留跟随在之后的字符的字面值.
posted @ 2020-03-11 19:06  klaus08  阅读(17)  评论(0编辑  收藏  举报