bash弱类型:
变量=值
任何变量无需事先声明,可直接使用
值默认都是字符型
a=abc, b=3
a=3
赋值:
a=4
加强型赋值:
+=, -=, *=, /=, %=
a=$[$a+1] 至关于 let a+=1linux
自加:var++, var--, ++var, --var
形如,此为字串型赋值 export PATH=$PATH:/usr/local/apache/binapache
unset: 撤消变量
在bash进程退出时,变量会自动销毁
算术运算:bash会对数字执行隐式的类型转换
let VAR_NAME=Integer_Value
declare -i Var_Name=Integer_Value 定义一个整形变量
declare: declare [-aAfFilrtux] [-p] [name[=value] ...]
Set variable values and attributes.
-i to make NAMEs have the `integer' attribute
操做符:
+, -, *, /, %, **bash
双目运算符:须要至少两个操做数来参与数据结构
bash的算术运算的方式:
let Var_Name=EXPRESSION(表达式) 命令,须要用命令引用来取结果
[root@linux_basic you]#num1=9
[root@linux_basic you]#num2=2
[root@linux_basic you]#let res=$num1*$num2
[root@linux_basic you]#echo $res
18
[root@linux_basic you]#let num1=$num1+8
[root@linux_basic you]#echo $num1
17
[root@linux_basic you]#echo $num1
22
[root@linux_basic you]#let num1/=4 结果默认不保留小数位
[root@linux_basic you]#echo $num1
5
[root@linux_basic you]#let num1--
[root@linux_basic you]#echo $num1
4
$[EXPRESSION]
$((EXPRESSION)) 推荐使用
命令:expr ARG1 OP ARG2 是一个独立的命令,须要用命令引用来取结果
[root@linux_basic you]#expr 1 + 3
4
[root@linux_basic you]#expr 1+5
1+5进程
for循环:
新建10个用户:tuser601-tuser610
useradd $userNameip
for Var in LIST; dofor循环
for userName in tuser601 tuser602 tuser603; do
useradd $userName
done变量
for i in {601..610}; do
useradd tuser$i
done循环
遍历LIST元素,遍历结束,循环退出;遍历
bash中的字串链接:
变量引用后方跟直接字串时,变量名要加{}
[root@linux_basic you]#echo "$(num1)nu"
-bash: num1: command not found
nu
[root@linux_basic you]#echo $num1
4
[root@linux_basic you]#echo "${num1}nu"
4nu
求100之内全部正整数的和:
declare -i sum=0
sum+=1, 0+1
sum+=2, 0+1+2
sum+=3
sum+=4
...
sum+=100
declare -i sum=0
for i in {1..100}; do
let sum+=$i
done
echo $sum
练习:写一个脚本,显示当前系统上有附加组的用户的用户名;并统计共有多少个此类用户;
for userName in `cut -d: -f1 /etc/passwd`; do
id $userName |
# egrep '[^:]$' /etc/group | cut -d: -f4 | sort -u | egrep -o '[[:alnum:]]*' | sort -u
写一个脚本,建立十个用户tuser401, tuser410
数据结构是组织数据的方式
bash scripts.sh 执行,是经过给bash传递参数