查看系统中所有的 shell 解释器
$ cat /etc/shells/bin/sh/bin/bash/sbin/nologin/usr/bin/sh/usr/bin/bash/usr/sbin/nologin/bin/tcsh/bin/csh
shell 基础
变量
声明变量直接赋值即可,通过 $var 引用一个变量,比如:
name=quanzaiyu$ echo $namequanzaiyu
命令结果
使用 $(command) 引用命令执行的结果,比如:
$ echo $(pwd)/home
使用 command 也是引用命令执行的结果,比如:
$ echo `pwd`/home
逻辑连接
使用一些逻辑运算符执行多条命令,比如:
$ echo 123 && echo 456123456$ lll && echo okbash: lll: 未找到命令...$ lll || echo okbash: lll: 未找到命令...ok
分支结构
if 条件:
$ vim if.shread -p 'Please enter a:' aif [ $a == 5 ]thenecho 5elseecho !5fi$ sh for.shPlease enter a:55$ sh for.shPlease enter a:1!5
循环结构
for 循环:
$ vim for.shfor i in {1..3};do echo hello $i;done;$ sh for.shhello 1hello 2hello 3
while 循环:
$ vim while.sha=1while [ $a -eq 1 ]do echo hello world!a+=1done$ sh while.shhello world!
$ vim while.sha=1while [ $a -le 5 ]do echo hello world!a=$((a+1))done$ sh while.shhello world!hello world!hello world!hello world!hello world!
shell 脚本编写
一个简单的 shell 脚本格式如下:
#!/bin/bashecho hello world!
解释器的区别
文件的第一句为声明执行器路径,不同的执行器可能产生不同的结果
#!/bin/sh当某行代码出错时,不继续往下解释,等价于#!/bin/bash --posix#!/bin/bash忽略出错的行继续解释代码
