管道:我们可以使用管道符|来连接进程.在Linux系统中,由管道连接起来的进程可以自动运行,就如同在他们有一个数据流一样.在下面的这个例子中,我们要使用sort命令来排序ps的输出.而如果我们不使用管道,我们就要分几步来完成。
Shell三种基本命令:内建命令,Shell函数以及外部命令。
Shell变量赋值:变量名=值 中间没有空格。
IO重定向简单说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本升值脚本中的代码块的输出,然后把捕捉到的输出,作为输入发送给另外一个文件,命令,程序或者脚本。
Shell执行跟踪 set -x set +x
export 修改或者显示环境变量
env 显示环境变量
参数扩展 Shell Parameter Expansion
位置参数 Positional Parameter
=={有个疑问: $# 指的是参数的个数 $*所有的位置参数等同于$1 $2…… }
#!/bin/sh
echo \$#=$# for i in $* do echo $i done
对上面的程序输入 i say "this a is dog"
输出的是以下内容
$#=3
i
say
this
is
a
dog
参数个数3个, $*却貌似冒出6个。。why
read
命令替换
expr
eval .eval命令将会首先扫描命令行进行所有的替换,再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。
$((expr)) 算数扩展,返回算术值
let 进行算术运算
for循环
练习了一下:
case ${1##*.tar.} in bz2) echo '1' ;; gz) echo '2' ;; esac
for I in $(seq 10) do echo $I multiply=$(($multiply*$I)) done echo 'the number is' $multiply
变量替换:点击打开链接
命令的结果输出作为变量的值
var=$(命令)
shell if 点击打开链接