脚本的第一行
#!/bin/bash
告诉shell用哪个shell来运行脚本
除了第一行以外所有的以‘#’开头的行都是注释
echo命令来产生输出,最好把语句用‘’引用起来
echo -n 产生的语句不会换行。
环境变量 通过前面加$符号可以取得
用户变量 定义赋值的时候 使用变量名
读取变量值的时候使用 $value_name 的形式
使用 \ 反斜杠 可以转义$ 符号
通过 反引号 `` 来包括命令以后能够把命令的输出 赋值给变量
例:
test_value=`date`
会把date输出内容赋值给test_value。
必须吧命令所有内容都包括起来,例如
today=`date +%y%m%d`
重定向
输出重定向
command > outputfile 如果文件不存在创建文件,文件存在,覆盖文件
command >> outputfile 如果文件存在的话,不覆盖文件,追加数据。
输入重定向
command < inputfile 将文件的内容重定向命令
内联输入重定向
command << marker
>
>
>marker
marker之前内容都会作为command的输入。
管道连接
command1 | command2
同事运行两个命令,在系统内部将它们连接起来。第一个命令产生输出的同事,输出被立即送到第二个命令。传输数据不会用到任何的中间文件或缓冲区。
例:
rmp -qa | sort | more
ls -l | more
执行数学运算
1. 使用命令expr 例如 expr 1 + 5
但是使用起来比较麻烦,比如 expr 1 * 5 会报错,需要使用 expr 1 \* 5 特别的麻烦。
2. 使用[ ] $[ operation ]
var1=$[1 + 5]
制限: bash shell数学运算符号、只支持整数运算。
3.使用bash计算器(bc)
注意:小数点后位数通过 scale设定 scale=4; 4位小数
用法1: variable=`echo "options; expression" | bc`
用法2:使用内联重定向输入
variable='bc << EOF
options
statements
expressions
EOF
'
shell命令运行完后通过变量?能够查询shell返回值
echo $?
脚本作成后使用命令 exit 来设定脚本的返回值
#!/bin/bash
告诉shell用哪个shell来运行脚本
除了第一行以外所有的以‘#’开头的行都是注释
echo命令来产生输出,最好把语句用‘’引用起来
echo -n 产生的语句不会换行。
环境变量 通过前面加$符号可以取得
用户变量 定义赋值的时候 使用变量名
读取变量值的时候使用 $value_name 的形式
使用 \ 反斜杠 可以转义$ 符号
通过 反引号 `` 来包括命令以后能够把命令的输出 赋值给变量
例:
test_value=`date`
会把date输出内容赋值给test_value。
必须吧命令所有内容都包括起来,例如
today=`date +%y%m%d`
重定向
输出重定向
command > outputfile 如果文件不存在创建文件,文件存在,覆盖文件
command >> outputfile 如果文件存在的话,不覆盖文件,追加数据。
输入重定向
command < inputfile 将文件的内容重定向命令
内联输入重定向
command << marker
>
>
>marker
marker之前内容都会作为command的输入。
管道连接
command1 | command2
同事运行两个命令,在系统内部将它们连接起来。第一个命令产生输出的同事,输出被立即送到第二个命令。传输数据不会用到任何的中间文件或缓冲区。
例:
rmp -qa | sort | more
ls -l | more
执行数学运算
1. 使用命令expr 例如 expr 1 + 5
但是使用起来比较麻烦,比如 expr 1 * 5 会报错,需要使用 expr 1 \* 5 特别的麻烦。
2. 使用[ ] $[ operation ]
var1=$[1 + 5]
制限: bash shell数学运算符号、只支持整数运算。
3.使用bash计算器(bc)
注意:小数点后位数通过 scale设定 scale=4; 4位小数
用法1: variable=`echo "options; expression" | bc`
用法2:使用内联重定向输入
variable='bc << EOF
options
statements
expressions
EOF
'
shell命令运行完后通过变量?能够查询shell返回值
echo $?
脚本作成后使用命令 exit 来设定脚本的返回值