美文网首页
Bash变量

Bash变量

作者: 陈智涛 | 来源:发表于2017-09-19 09:46 被阅读0次

在linux中默认的变量类型全是字符串类型,如果需要做数值运算,则需要做特殊处理,指定变量为数值型

  • 变量用等号连接,等号两侧不能有空格
  • 变量的值如果有空格,则用单引号或者双引号包括起来
  • 变量的值中可以使用"\" 转移符
  • 如果需要增加变量的值,那么可以进行变量值得叠加,不过需要双引号包含"$变量名"或者${变量名}包含
  • 如果把命令的结果作为变量值的赋值结果,则需要用反引号'``'或者'$()'把命令包含起来
  • 环境变量建议大写,便于区分
bash变量分为四类:
  • 用户自定义变量
  • 环境变量: 保存操作系统环境相关的数据
  • 位置参数变量:用来向脚本传递参数或者数据,变量名不能自定义,变量的作用是固定的
  • 预定义变量:Bash 中已经定义好了的变量,同样,变量名不能自定义,变量的作用是固定的

1、用户自定义变量

  • 变量定义
name="chenzhitao"
  • 变量叠加
aa=123
aa="$aa"456
aa=${aa}789

输出结果:

echo $aa
123456789
  • 查看变量命令
set
  • 删除变量
unset 变量名
unset aa

2、环境变量

2.1什么是环境变量

用户自定义变量只在当前的shell生效,而环境变量会在当前的shell和这个shell的所有子shell生效。如果把环境变量写到相应的配置文件当中,那么这个环境变量就会对所有的shell生效。

2.2设置环境变量

格式:

#申请变量
export 变量名=变量值
#查看变量
env
#删除变量
unset 变量

2.3常见的系统环境变量

  • PATH:系统命令查找路径
#查看PATH
echo $PATH
/Applications/MAMP/bin/php/php5.6.27/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/chenzhitao/.rvm/bin
#将一个shell复制到环境变量中,使之可以直接运行
cp hello.sh /usr/local/bin
hello.sh
hello world

但不建议这样修改环境变量,而是用变量累加的方式

PATH = "$PATH":脚本保存路径
PATH="$PTAH":/Applications/MAMP/htdocs/code/linuxtest/shell

- PS1 自定义系统提示符变量

![屏幕快照 2017-09-18 上午11.38.27.png](https://img.haomeiwen.com/i3829761/2c2136745f1e469d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


但这个是临时生效,一旦重启就会失效

3位置参数变量

3.1 位置参数分类:

屏幕快照 2017-09-18 下午2.34.15.png

示例1:
vim param1.sh

#!/bin/bash
echo $0
echo $1
echo $2
echo $3

修改权限:

chmod 755 param1.sh

执行:

./param1.sh

结果:

chenzhitaodeMacBook-Pro:shell chenzhitao$ ./param1.sh
./param1.sh



带位置参数执行

./param1.sh 1 2 3

结果:

chenzhitaodeMacBook-Pro:shell chenzhitao$ ./param1.sh 1 2 3
./param1.sh
1
2
3

示例2:求和函数

#!/bin/bash
sum =$(( $1+$2 ));
echo "sum is $sum";

示例2:比较$* 和$@的区别
$* 是把参数当做一个整体,$@是把分别读取每个参数
vim param2.sh

#!/bin/bash
for i in "$*"
    do
       echo "param is $i"
    done
for i in "$@"
    do
        echo "param2 is $i"
    done
chenzhitaodeMacBook-Pro:shell chenzhitao$ chmod 755 param2.sh
chenzhitaodeMacBook-Pro:shell chenzhitao$ ./param2.sh 11 22
param is 11 22
param2 is 11
param2 is 22

4、预定义变量

4.1预定义变量

屏幕快照 2017-09-18 下午3.26.43.png

示例:


屏幕快照 2017-09-18 下午3.32.32.png

4.2接受键盘输入

屏幕快照 2017-09-19 上午9.27.07.png

示例1:
vim param3.sh

#!/bin/bash
read -t 10 -p "请输入你的姓名:" name;
echo "name is $name"
# -s 表示对键盘输入隐藏,起到保密作用
read -s -t 10 -p "请输入密码:" password
echo "password is $password"
# -n 1 表示输入一个字符
read -n 1 -t 10 -p "请输入性别M/F:" gender
echo "gender is $gender"
chenzhitaodeMacBook-Pro:shell chenzhitao$ ./param3.sh
请输入你的姓名:chenzhitao
name is chenzhitao
请输入密码:password is 12345
请输入性别M/F:mgender is m

相关文章

  • bash脚本编程-变量,变量类型

    bash变量类型: 环境变量,本地变量,位置变量,特殊变量。 本地变量: bash: VARNAME=value ...

  • Shell进阶脚本-内部变量

    内建变量 影响 Bash 脚本行为的变量 $BASH Bash程序的路径 $BASH_ENV 这个环境变量会指向一...

  • bash脚本内部变量

    bash脚本内部变量 $BASH bash的程序文件的路径,如/bin/bash $BASH_ENV 该环境变量保...

  • Shell基础ideago精华版

    hello world #! /bin/bash 声明为bash执行 变量 bash的变量无需声明,可以直接使用,...

  • Bash变量的类型

    Bash变量的类型通常理解shell变量是弱类型的,或者无类型的,其实Bash变量是有类型的。 Bash变量一共有...

  • shell基础

    1,bash 自定义变量 变量替换之匹配截取: bash测试 bash判断 条件判断 if if代码返回0表示真,...

  • Shell Bash 的内部变量

    $BASH 变量 —— 用于引用 Bash 实例的全路径名。变量的值如下所示: $HOME 变量 —— 当前用户的...

  • bash变量

    变量类型 变量一旦设置了类型,那么该变量的存储格式、存储空间大小和可参与的运算、以及运行机制就已被限定(不一样)了...

  • Bash变量

    Bash变量 一、变量简介 1、什么是变量 变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存...

  • bash变量

    变量:默认都是字符串型 变量 name=zhangsan //给zhangsan赋值给name变量echo $na...

网友评论

      本文标题:Bash变量

      本文链接:https://www.haomeiwen.com/subject/ytqesxtx.html