- chmod +x ./test.sh #使脚本具有执行权限
- echo 打印输出 ,shell 另一个输出命令 printf format-string [arguments…]
- 定义变量 your_name=”tom” 使用变量{echo {echo your_name}
- 获取字符串长度 echo ${#string}
- 提取子字符串 echo ${string:1:4}
- 查找子字符串 echo
expr index "$string" io
- 数组 array_name=(value0 value1 value2 value3) 读 数组名[下标]读所有echo 数 组 名 [ 下 标 ] 读 所 有 e c h o {array_name[@]}
- 执行脚本时传参 ./test.sh 1 2 3 0是文件名 0 是 文 件 名 1是第一个参数
- 循环参数 for i in “$@”; do
- 算数运算符: val=
expr 2 + 2
用反引号加空格 - 关系运算符: if [ a−eq a − e q b ]
- read name 从标准输入中读一行给name
- read -p “请输入一段文字:” -n 6 -t 5 -s password (-p 提示语 -n限制字符数 -t 限时 -s隐藏输入内容
- echo -e “OK! \c” # -e 开启转义 -n 开启换行 \c 不换行 \n 换行
- test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。如 if [ a== a == {b} ] 还可以写成 if test a−eq a − e q {b}
if 语句
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
for 语句
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
case 语句
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
*)
command1
;;
esac
esac
case的语法和C family语言差别很大,它需要一个esac(就是case反过来)作为结束标记,每个case分支用右圆括号,用两个分号表示break。
command 语句可以有continu 和 break , 含义和c 语言的类似
while 和 util 循环
until 循环执行一系列命令直至条件为 true 时停止。
until 循环与 while 循环在处理方式上刚好相反。
一般 while 循环优于 until 循环,但在某些时候—也只是极少数情况下,until 循环更加有用
while condition
do
command
done
until condition
do
command
done
函数
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com
funWithReturn(){
echo "这个函数会对输入的两个数字进行相加运算..."
echo "输入第一个数字: "
read aNum
echo "输入第二个数字: "
read anotherNum
echo "两个数字分别为 $aNum 和 $anotherNum !"
return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"
函数返回值在调用该函数后通过 $? 来获得。
注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。
文件包含
. filename # 注意点号(.)和文件名中间有一空格
或
source filename
举例
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com
#使用 . 号来引用test1.sh 文件
. ./test1.sh
# 或者使用以下包含文件代码
# source ./test1.sh
echo "菜鸟教程官网地址:$url"
linux 命令大全 :http://www.runoob.com/linux/linux-command-manual.html