shell脚本变量设置
声明:
export A=1
用户级:
vim ~/.bash_profile 或 ~/.bashrc ###~:当前用户的家目录
系统级:
vim /etc/profile
export A=1
用户级表示当前用户的环境变量,如果系统级的环境变量,以export A=1为例,所以的用户echo $A的值都为1
alias:别名
alias ###查看别名
vim /etc/bashrc ####全局/etc/profile也可以
alias dream='vim'
source /etc/bashec ###这样我们就可以用dream当vim使用了
unalisas dream ###取消别名
转义(服从就近原则)和变量
echo $$ ###表示进程的id
echo "$$$$" ###弱转义,不能转义特殊符号:$ ! \ `等 需要在特殊符号前面加\转义
echo '$$$$' ###强转义
a=2
echo ${a}b ###可以先运行变量,这样输出的结果为2b
算法的表示:
(());let;expr;$[ ]
注意:除法这些要用单引号
#!/bin/bash
a=1
b=2
#((c=a+b))
#let c=$a+$b
#c=`expr $a + $b`
c=$[$a+$b]
echo "$c"
bc:计算器
[root@server mnt]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2
3
$1 ###脚本后面的第一串字符串
$# ###脚本后所跟的字符串个数
$* ###脚本后跟的所有字符串,模式为"1 2 3"
$@ ###脚本后跟的所有字符串,模式为"1" "2" "3"
可以用脚本测试2个的区别:
for n in "$*" ###把$*换乘$@可以测试另外一个
do
echo "$n"
done
通过username和passwd文件建立用户和密码
vim username
user1
user2
user3
vim passwd
123
456
789
vim create_user.sh
#!/bin/bash
[ ! "$#" -eq "2" ]&&{
echo "ERROR"
exit
}
MAX=`wc -l $1 | awk '{print $1}'`
for NUM in `seq 1 $MAX`
do
USERNAME=`sed -n ${NUM}p $1`
PASSWD=`sed -n ${NUM}p $2`
useradd $USERNAME
echo $PASSWD | passwd --stdin $USERNAME &>/dev/null &&echo created $ USERNAME $PASSWD
done
退出命令的区别
continue ###退出此次结果
break ###退出当前循环
exit ###退出当前脚本
测试3个的区别:
vim test.sh
for i in {1..10}
do
if [ "$i" = "7" ];then
echo hello world
continue
fi
echo $i
done
echo end
continue:
break:
exit: