Shell变量

 


前言

1、Shell执行方式:子shell   本shell

子shell: bash  sh      (bash  test.sh)

本shell: .    source    (. test.sh)

2、Shell与其他语言:

 3、查看shell解释器:

[root@orange ~]# cat /etc/shells 
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

一、变量

1、解释

shell 变量? 用一个固定的字符串去表示不固定的内容,便于修改。

2、变量类型

1. 自定义变量

定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip=192.168.2.115 
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名; "set"可以查看所有变量(包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效

变量赋值:

1. 显式赋值
变量名=变量值
示例:
ip=192.168.1.255
school="BeiJing school"
today1=`date +%F`
today2=$(date +%F)

2. read 从键盘读入变量值
read 变量名
read -p "提示信息: " 变量名
read -t 5 -p "提示信息: " 变量名    //-t 等待5秒,后超时 read -n 2 变量名    //-n 只记录几个字符

例 read -p "请输入您测试的IP地址:" ip
ping -c1 $ip &>/dev/null && echo " $ip up" || echo "$ip down"

2.环境变量

定义环境变量: 方法一 export you=/home/backup 
                方法二 export you 将自定义变量转换成环境变量
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效 !!!

3.位置变量

命令     参数1 参数2 参数3 ....9以后特殊定义
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ...

4.预定义变量

预先定义过的变量
$0 脚本名 $* 所有的参数 $@ 所有的参数 $# 参数的个数 $$ 当前进程的PID $! 上一个后台进程的PID $? 上一个命令的返回值 0表示成功

 二、变量的运算

方法一:expr
方法二:$(())
方法三:$[]
方法四:let 表达式
方法一:expr
expr 1 + 2
expr $num1 + $num2 + - \* / %          (*是任意字符,使用\ 转义一下)
+-减
\*/
%取余
方法二:$(())
echo $(($num1+$num2)) + - * / %
echo $((num1+num2))
echo $((5-3*2)) 
echo $(((5-3)*2))
echo $((2**3))        //(幂)2的3次方
sum=$((1+2)); echo $sum
方法三:$[]
echo $[5+2] + - * / %
echo $[5**2]
方法四:let 表达式
let sum=2+3; echo $sum
let i++; echo $i

 

posted @ 2020-12-21 18:38  Noleaf  阅读(61)  评论(0编辑  收藏  举报