一、输入输出
1、输入
从控制台输入:
read -p "input name:" name从文件获取输入
read -p "input name:" name < data1.txt参数输入及使用:
$1    #使用第一个参数,依此类推使用其它参数2、输出
echo输出:
echo "str" 
echo "hello wordl!"
echo $strprintf输出:
printf "%-10s %-8s %-4.2f\n" abc bc 1.23二、变量、数组
1、变量声明及使用
#!/bin/bash
str="hello" #字符串变量
str1="li,\"$str\"!\n"  #字符串相加,和使用第一个字符串
echo $str1
echo ${str}
echo ${str:0:1} #输出第1个和第2个字符串
echo ${#str}   # 输出str字符串长度2、数组声明及使用
list=(1 2 3 4)    #声明数组,用空格分隔开元素
list[0]=200      #将第一个元素改为200
a=${list[0]}     #读取第1个元素
echo ${list[@]}
    #输出所有元素
length=${#list[*]}  #输出数组长度3、参数
| $# | 传递到脚本的参数个数 | 
| $* | 以一个单字符串显示所有向脚本传递的参数。 | 
| $$ | 脚本运行的当前进程ID号 | 
| $! | 后台运行的最后一个进程的ID号 | 
| $@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 | 
三、分支和循环
1、分支
if [ command ];then
   代码
elif [ command ];then
   代码
else
   代码
fi
1.1 数值判断
[ num1 -eq num2 ]      num1 和 num2 两数相等为真 , =
[ num1 -ne num2 ]      num1 和 num2 两数不等为真 ,!=
[ num1 -gt num2 ]      num1 大于 num1 为真 , >
[ num1 -ge num2 ]      num1 大于等于num2 为真, >=
[ num1 -lt num2 ]      num1 小于n um2 为真 , <
[ num1 -le num2 ]      num1 小于等于 num2 为真, <=
1.2 字符串判断
[ -z "str" ]   str的长度为零,则为真 ,即判断是否为空,空即是真;
[ -n "str" ]   str的长度非零,则为真 ,即判断是否为非空,非空即是真;
[ "str1" = "str2" ]   两个字符串相同,则为真;
[ "str1" != "str2" ]   字符串不相同,则为真;
[ "str1" ]   字符串不为空,则为真,与-n类似。
1.3 文件及目录
[ -e file ]        file 存在,则为真。
[ -d DIR ]         file 存在,且是一个目录,则为真。
[ -f file ]        file 存在,且是一个普通文件,则为真。
[ -r file ]      file 存在且是可读的,则为真。
[ -w file ]      file存在且是可写的,则为真。
[ -x file ]         file 存在且是可执行的,则为真。2、循环
2.1 for循环
for 变量名 in 列表
do
  命令
done举例:
for i in {1..5};
do 
    echo $i;
done
#{1..5}为取值范围1到5
 echo $i 输出当前的取值
for((i=1;i<=5;i++));
do 
    echo $i;
done
#使用(())双括号,可以支持C语言的一些命令
for i in `seq 5`;
do 
   echo $i;
done
#seq 5 与{1..5}效果一样2.2 while循环
while  条件
do
      循环体
done
四、函数
function 函数名(){
	命令序列
}
或
函数名(){
    函数体
}五、代码
#!/bin/bash
name="hello world"
echo $name
echo ${#name}
echo ${name:1:4}
list=(1 2 3 4 5)
list[1]=100
echo ${list[1]}
echo ${list[@]}
echo "number:$#"
echo "first:$1"
declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"
echo ${site["runoob"]}
val=`expr $1 + $2 `
echo "val=$val"
#比较第一个参数和第2个参数是否相等
if test $1 -eq $2
then
	echo "equal"
else
	echo "it's"
fi
#输出list
for i in {1..10}
do
	echo "the value is $i"
done
index=0
#输出1到10
while [ $index -le 10 ]; do
echo "${index}"
let index=index+1
done
function printhello() {
	echo "Hello"
}
printhello







