#可以直接用bash来执行
bash 1.sh
#如需用户./来执行,需要赋予权限
chmod +x 1.sh
./1.shname=“test”,组要注意的是等号两边不能有空格。local name=“test”,使用local修饰的变量在函数体外无法访问,只能在函数体中使用。readonly name=test,这种变量不可以被修改。echo $name或者echo ${name}unset name,删除之后的变量无法被访问,需要注意无法删除只读变量。#获取脚本后面写的参数
$1,$2...
#获取脚本名称
$n
#获取脚本后面有多少参数(可以写if判断或者for循环)
$#
#获取脚本后面的所有参数
$* $@
#获取最后一次执行命令返回的状态
$?test condition
[ condition ](注意 condition 前后要有空格)
-eq 等于(equal) -ne 不等于(not equal)
-lt 小于(less than) -le 小于等于(less equal)
-gt 大于(greater than) -ge 大于等于(greater equal)
-r 有读的权限(read) -w 有写的权限(write) -x 有执行的权限(execute)
[ -w helloworld.sh ]
-e 文件存在(existence) -f 文件存在并且是一个常规的文件(file) -d 文件存在并且是一个目录(directory)
&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令
[ atguigu ] && echo OK || echo notOK注意事项:
①[ 条件判断式 ],中括号和条件判断式之间必须有空格
②if 后要有空格
if [ 条件判断式 ]
then
程序
fi
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
ficase $变量名 in
"值 1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esacfor (( 初始值;循环控制条件;变量变化 ))
do
程序
done
sum=0
for((i=0;i<=100;i++))
do
sum=$[$sum+$i]
done
echo $sumfor 变量 in 值 1 值 2 值 3…
do
程序
done
for i in cls mly wls
do
echo "ban zhang love $i"
donewhile [ 条件判断式 ]
do
程序
done
sum=0
i=1
while [ $i -le 100 ]
do
sum=$[$sum+$i]
i=$[$i+1]
done
echo $sumread (选项) (参数)
①选项: -p:指定读取值时的提示符; -t:指定读取值时等待的时间(秒)如果-t 不加表示一直等待
②参数 变量:指定读取值的变量名
reat -t 10 -p '输入:' a
echo $a
#输入密码不显示 -n表示不换行 -s表示不显示输入
echo -n "请输入密码:"
read -s password 
#查看去除注释和空行的
cat svnserve.conf |grep -v "^#"|grep -v "^$"