Shell中变量的使用

1、变量的声明

  name="blacksonny"

 注意://变量定义时不加$,变量与等号之间不能有空格

  变量命名规则: 

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)

2、 使用变量

  如果要使用变量,在该变量前加上$即可,也推荐使用${name}

  如:$name

1 #!/bin/bash
2 #description: use variable
3 #Author: blacksonny
4 #Copyright (c)
5 #Script follows here:
6
7 name="blacksonny"
8 echo $name
9 echo ${name}

上面的代码之后后同时输出 blacksonny,其中对于{}是可有可无的,一般为了界定变量的边界而使用

如下代码区分变量和Programm,否者无法获取变量的值

for book in Java Php Android iOS
do
    echo "I will study ${book}Programm"
done

3、变量的重新定义,shell允许重新定义变量,与定义变量的方法一样,只是将原来的变量重新赋值即可

4、只读变量

  通过使用readonly关键字定义一个只读变量

number=1323
readonly number
number=1333

运行var.sh 结果为: 【 ./var.sh:行24: number: 只读变量】,提示此变量不允许被修改了。

5、删除变量

  使用unset var_name可以删除变量

6、变量类型

  1)局部变量

  2)环境变量

  3)shell变量

时间: 2024-12-28 12:03:36

Shell中变量的使用的相关文章

shell中变量的使用(2)

shell中变量的几点知识: 变量: 1.在默认情况下,所有的变量都被看做字符串来存储的 2.变量区分大小写 3.在变量名前加$来访问内容 4.不需要声明 5.双引号中允许$扩展(用变量的值替换),单引号不行. 示例: s=hello         #(注意等号两边不能有空格) echo $s 环境变量: shell脚本开始执行时,一些变量会根据环境设置中的值进行初始化,这些变量就是环境变量.习惯大写字母. $HOME 当前用户的家目录 $PATH  以冒号分割的用来搜索命令的目录列表 $0 

shell中变量被定义为星号(*)后无法引用的问题

在编写shell脚本的过程中,有的时候难免会用到一些变量值被定义为(*)的变量,但是当我们试图引用这个变量的时候bash有默认会把(*)替换成当前目录下的所有文件名的列表,如下: [[email protected]_102 ~]# a=* [[email protected]_102 ~]# echo $a anaconda-ks.cfg install.log install.log.syslog [[email protected]_102 ~]# ls  anaconda-ks.cfg 

shell中变量的间接引用

在编写shell脚本的过程中相信大家都会遇到这样的场景: #!/bin/sh # log_1="xxxxxx" log_2="yyyyyy" log_3="zzzzzz" for num in {1..3} do     log=log_$num     #此时你想把log_1,log_2,log_3,这三个变量的变量值依次的for循环中引用,但是如果你直接echo     #出的变量,则只会输出你想引用的变量的变量名,而不是该变量的变量值,这里

shell中变量内容的删除,替代

删除 ${varname#strMatch} // 在varname中从头匹配strMatch,然后删除从头到第一次匹配到的位置 ${varname##strMatch} // 在varname中从头匹配strMatch,然后删除从头到最后一次匹配到的位置 ${varname%strMatch} // 在varname中尾头匹配strMatch,然后删除从尾到第一次匹配到的地方 ${varname%%strMatch} // 在varname中尾头匹配strMatch,然后删除从尾到最后次匹配到

关于shell中变量设置

定义变量 A= 给变量赋值 A=5 ``号等同$() [[email protected] ~]# hostname localhost.localdomain [[email protected] ~]# a=`hostname` [[email protected] ~]# echo $a localhost.localdomain ${-} 判断变量是否设置,如果未设置,就用-后面进行赋值 空值也是值 [[email protected] ~]# c= [[email protected]

shell中变量计算

year=44 1.let,不需要$引用变量 let m=year+3 echo $m 2.(()) m=$((year+3)) 3.[  ],注意两边一定要有空格 m=$[ year+3 ] 4. bc,可以实现高精度的运算:echo 3+4|bc m=$(echo ${year}+12|bc) 5. expr,一定要注意不要漏掉空格 m=`expr $year + 2`

shell中变量的查看和删除

例如:现在有两个用户自定义变量 name="刘德华" age=20 set命令是用来查看变量 unset命令用来删除变量 unset name unset age

shell中变量$系列的含义

$$:shell本身的PID $!:shell最后运行的后台PID $?:最后运行的命令的结束代码(返回值) $-:使用set命令设定的flag一览 $*:所有参数列表,如"$*"用「"」括起来的情况.以"$1 $2 … $n"的形式输出所有参数. [email protected]:所有参数列表,如"$*"用「"」括起来的情况.以"$1 $2 … $n"的形式输出所有参数. $#:添加到shell的参数个

二、Shell中的变量

变量是任何程序或脚本的重要组成部分.变量为程序或脚本访问内存中的可被修改的一块数据提供了简单的方式.Linux Shell中的变量可以被指定为任意的数据类型.Shell中有两种变量的类型:系统变量(环境变量)和用户自定义的变量(本地变量或Shell变量). 环境变量:作用域为当前shell进程及其子进程:环境变量一般均为大写.常用的环境变量有: 系统变量 含义 BASH_VERSION 保存bash实例的版本 DISPLAY 设置X display名字 EDITOR 设置默认的文本编辑器 HIS