简介

shell 语法学习笔记。

重定向

标准输入、标准输出、错误输出

1、输入重定向
read var  <  ~/test.txt

2、输出重定向
echo 123 > ~/test.txt
>      替换原文件
>>     追加至原文件
2>     将错误输出到原文件
&>     不管错误还是正确的信息都添加在原文件

管道符

将前一个命令执行的结果传递给后一个命令

ls -alh | more

shell 脚本执行方式

1、会重新开一个进程
bash xxx.sh
./xxx.sh

2、在当前进程执行
source xxx.sh
. xxx.sh

变量的赋值

1、=
a=123

2、用let给变量赋值
let a=10+20

3、将命令赋值给变量
a=ls

4、将命令结果赋值给变量
a=${ls -l etc}

变量的引用

1、引用变量
${变量名}

2、获取变量
echo ${变量名}

3、部分情况可以省略{}
$变量名

变量的作用范围

1、变量的导出
export

2、变量的删除
unset

系统环境变量

1、环境变量
set和env命令
$?   上条命令是否正确,正确返回0
$0   运行程序的终端或文件
$$   命令的进行id
$PATH  系统环境变量

2、位置变量
$1 $2 … $n

环境变量配置文件

/etc/profile

.bash_profile

.bashrc

/etc/bashrc

定义数组

1、定义数组
IPS=(10.0.0.1 10.0.0.2 10.0.0.3)

2、显示数组所有元素
echo ${IPS[@]}

3、显示数组第一个元素
echo ${IPS[0]}

4、显示数组长度
 echo ${#IPS[@]}

特殊字符

#  注释

;  分割命令

\  转义字符

”  双引号【里面可以使用变量】

'  单引号【里面的${变量名},不会被解析】

`  反引号【里面可以执行命令】

运算符

1、赋值运算符: =

2、算数运算符
+、-、*、/、**、&
expr 4 + 5 (使用expr进行运算)

3、数字常量
let 变量名=变量值

4、双圆括号: (())
变量赋值: ((a=10))
变量自增: ((a++))
获取变量: echo $((10+20))

5、单圆括号: ()
数组: ()
子shell: (xyz=123)

6、单双括号: []、[[]]
单括号: 测试(test)或数组元素功能
双括号: 两个方括号表示测试表达式

7、花括号: {}
输出范围: echo {0..9}
文件复制: cp /etc/passwd{,.bak}

8、逻辑运算符
&&  ||  !

9、?运算符

test 命令

1、用途
文件测试、整数比较测试、字符串测试

2、简写: []

3、[] 符号还有扩展写法 [[]] ,支持 &&   ||   <   >

判断语句

if  [测试条件成立]或命令返回值 $? 返回值为 0; then
    执行相应命令
elif  [测试条件成立]或命令返回值 $? 返回值为 0; then
    执行相应命令
else
    执行相应命令
fi

case 分支

case "${变量名}" in
    "情况1")
        命令1;;
    "情况2")
        命令2;;
    *)
        命令3;;
esac

for 循环

for 参数 in 列表; do
    执行相应命令
done

while 循环

while test测试是否成立;
do  
    执行相应命令
done

函数

函数申明
testFuc() {
    ls
}

函数执行
testFuc

参考资料

powered by Gitbook该文件修订时间: 2023-05-16 18:08:03

results matching ""

    No results matching ""