shell基础

一、shell中的算术表达式 

1. expr expression

x=1

x=$(expr $x + 1) 或者 x=`expr $x + 1`

注意: $x + 1之间有空格

 

2. let expression

x=1

let x=$x+1 或者 let x+=1

注意:$x+1之间没有空格,x+=1之间没有空格, let没有返回值

 

3. ((expression)) 和 $((expression))

((expression)) 用法:

x=10

((x+=1)) 其方法与let类似

$((expression))用法:

x=10

y=$(($x+1))

y=$((x+=1))

注意:两者的差别:(())没有返回值,$(())有返回值

 

4. 使用$[]格式

x=10

$[ $x+1 ]

y=$[ x = $x + 1 ]

y=$[ $x+1 ]

注意:注意空格的使用

 

5. 使用declare

declare -n i

i=$i+1

echo $i

二、declare/typeset用法(声明shell变量)   shell数组和declare用法

declare -p[]

declare -a var  数组变量

shell内部变量:shell 本身来执行,不能被外部程序调用,不创建子Shell。

shell外部变量由fork出来的子shell 执行,创建子Shell

查看shell内部变量man  builtin  或 compgen -b

子shell:

子Shell能够从父Shell继承得来的属性如下:
当前工作目录
环境变量
标准输入、标准输出和标准错误输出
所有已打开的文件标识符
忽略的信号
子shell 能继承父shell环境变量和.bashrc文件中定义变量,其他变量不继承。

shell变量包括两种变量

1.本shell私有的变量:通过赋值语句定义好的变量,可以通过如下方法定义shell变量

       x="1234"

       delcare y="2345"

2.用户的环境变量:通过export语法导出的shell私有变量,可以通过如下方法导出用户环境变量

      A1="1234"

      export A1  #先定义再导出

      export A3="34"

导出成的用户环境变量可以在所有的shell中看到

env显示用户的环境变量;

set 显示当前shell的定义的私有变量,包括用户的环境变量,按变量名称排序;

export 显示当前导出成用户变量的shell变量,并显示变量的属性(是否只读),按变量名称排序;

declare 同set 一样,显示当前shell的定义的变量,包括用户的环境变量

3.while 循环

#! /bin/bash
i=1
while (($i<5))
#while [[ $i<5 ]]
#while [ $i -lt 5 ]
do
   echo $i
   let "i+=1"
#  i=$i+1
#  ((i++))
#  let i+=1
#  i=$[$i+1]
#  
done

#! /bin/bash
for((i=1;i<=10;i++))
do
   echo "i=$i"
done

4.for 循环

for XX in $(seq 1 5)|`seq 1 5`|1 2 3 4

 

 

你可能感兴趣的:(表达式,expression)