快速玩转Shell

一、简介
shell是Unix和linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。(交互式和批处理式)作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支
二、shell解释器
bash、sh、csh、ksh(脚本编程语言的例子有awk、Perl、Python、Ruby与Shell)
更高级,是别的语言的N倍
三、执行shell脚本
3.1 作为可执行程序
      ./test.sh
3.2作为解释器参数
      直接运行解释器,其参数就是shell脚本的文件名

    /bin/sh test.sh
    /bin/php test.php
如:
 
  • echo "What is your name?"
  • read PERSON
  • echo "Hello, $PERSON"
  • /
chmod +x ./test.sh
$./test.sh
What is your name?
mozhiyan
Hello, mozhiyan

四、变量
4.1定义变量
a="123"
4.2使用变量
echo $a 或 ${a}
4.3变量可重新赋值
4.4变量可以为readonly或unset

五、特殊变量

 

六、变量替换

6.1

 
  • a=10
  • echo -e "Value of a is $a \n"

6.2


6.3 命令替换
注意是反引号,不是单引号,这个键位于 Esc 键下方。

 

 七、运算
包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
 

 
  1. #!/bin/bash
  2.  
  3. val=`expr 2 + 2`
  4. echo "Total value : $val"

 

 

 

 

 

 八、注释
以“#”开头的行就是注释,会被解释器忽略。
多行注释可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。
九、字符串
9.1拼接字符串

 
  • your_name="qinjx"
  • greeting="hello, "$your_name" !"
  • greeting_1="hello, ${your_name} !"
 

9.2获取字符串长度

echo ${#string}
9.3提取字符串
echo ${string:1:4}
9.4查找字符串
echo `expr index "$string" is`

十、数组

10.1定义数组

用括号来表示数组,数组元素用“空格”符号分割开

 
  1. array_name=(value0 value1 value2 value3)

10.2读取数组

 
  1. valuen=${array_name[2]}

10.3获取数组长度

 
  1. # 取得数组元素的个数
  2. length=${#array_name[@]}
  3. # 或者
  4. length=${#array_name[*]}
  5. # 取得数组单个元素的长度
  6. lengthn=${#array_name[n]}

十一、echo

在屏幕上打印字符串

11.1输出至文件

echo "It is a test" > myfile
11.2显示命令执行结果
echo `date`

十二、printf

格式化输出,是echo的增强版

十三、if else

if [ expression 1 ]
then
   Statement(s) to be executed if expression 1 is true
elif [ expression 2 ]
then
   Statement(s) to be executed if expression 2 is true
elif [ expression 3 ]
then
   Statement(s) to be executed if expression 3 is true
else
   Statement(s) to be executed if no expression is true
fi
十四、case esac
 
  • read aNum
  • case $aNum in
  • 1) echo 'You select 1'
  • ;;
  • 2) echo 'You select 2'
  • ;;
  • 3) echo 'You select 3'
  • ;;
  • 4) echo 'You select 4'
  • ;;
  • *) echo 'You do not select a number between 1 to 4'
  • ;;
  • esac

十五、for循环

 
  1. for str in 'This is a string'
  2. do
  3. echo $str
  4. done

十六、while循环

 
  1. COUNTER=0
  2. while [ $COUNTER -lt 5 ]
  3. do
  4. COUNTER='expr $COUNTER+1'
  5. echo $COUNTER
  6. done

十七、until循环

until command
do
   Statement(s) to be executed until command is true
done
十八、跳出循环
在嵌套循环中,break 命令后面还可以跟一个整数,表示跳出第几层循环
十九、函数
19.1函数可以有function也可以没有function
19.2返回字符串
     可以先定义一个字符串
19.3删除函数
    
$unset .f function_name
19.4从终端调用函数
将函数定义在主目录下的 .profile 文件,这样每次登录后,在命令提示符后面输入函数名字就可以立即调用。 

 

 二十、输入输出重定向
20.1输出重定向
命令输出重定向

$ command > file
20.2输入重定向
command < file
二十一、文件包含
  1. . filename

  1. source filename

例如,创建两个脚本,一个是被调用脚本 subscript.sh,内容如下:

 
  1. #!/bin/bash
  2. . ./subscript.sh
  3. echo $url
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值