介绍shell
shell是指“提供使用者使用界面”的软件(命令解析器),它接收用户命令,然后调用相应的应用程序。
shell的类型:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
我们平时使用的是Bourne Again Shell,Bourne Again Shell(#!/bin/sh<==>#!/bin/bash)
运行shell程序
一般新建的shell(XX.sh)文件的权限为664,不具有执行权限,编写好shell文件并保存后使用(chmod +x XX.sh)给文件赋予可执行权限。
输入输出
1、echo
变量和字符串的输出
单引号和双引号区别:
单引号里面的内容会原模原样的输出,
echo 'this is an "example"' //输出结果便是:this is an "example"
双引号里面若想输出带双引号的字符串,必须对双引号进行转义
echo "this is an \"example\""
显示换行(-e),不显示换行(-n),默认情况
2、printf 可进行格式化输出
printf format-string [argument1 argument2 …….]
printf "%-10s %-8s %-4s\n" name age weight
//result:
name age weight
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
此处的format-string可以用双引号括起来,也可以用单引号括起来,同时也可以不用引号。
str="狐狸先生"
printf %s yibai //output:yibai 注意此处字符串也不用添加引号
printf '%s' "yibai" //output:yibai
printf "%s" "str" //output:yibai
数组
bash是只支持一维数组的,不用直接定义数组个数,数组下标从0开始
temp=(first second third)
echo ${temp[2]} //output:third
示例:
字符串
介绍一些字符串的常用操作:
字符串可以用单引号,双引号,也可以不用引号
单引号:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
双引号:
双引号里可以有变量
双引号里可以出现转义字符
拼接字符串:
函数
##
定义函数:
[function] fun_1(){
...
[return value]
}
函数示例:
- 函数的返回值可以通过$?得到
- 函数传递参数的时候只需在调用函数的后面跟上参数便可(空格隔开)
- 函数中通过
1 2 $3 分别获取第一个,第二个,第三个参数