1、在shell中 $# 可以表征命令行参数的数量
$*变量和$@变量 这两个变量可以获取所有的参数,只不过$*将所有的参数视为一个单词,$@将每个参数视为独立的单词
可以使用for进行遍历
2、从某个文件中读取内容,并做出操作:exec命令允许将STDIN重定向为文件
4、关闭文件描述符
5、在linux系统中,null文件的标准位置是/dev/null , 所有重定向到该位置的都会被丢弃
ls -a > /dev/null
6、如何清除一个文件
7、如何实现基于一个文件,读取其每一行数据,并每一行生成一个insert语句,将所有的insert语句存入一个sql文件中
这行的意思是
cat >> $outfile << EOF 这一行表示将下面的文本追加到 $outfile 文件末尾,直到遇到 EOF 结束标记
这一行是${1}代表待读取的文件
8、linux中存在的信号
- Control + c 是 sigint信号
- Control + z 是 sigtstp 信号
9、如何将某个脚本变成后台运行?
- 只需要在其启动命令后面加上 & 即可
- 例如: sh test.sh &
10、如何在退出了终端会话后,脚本一直在后台运行?
- 可以使用 nohup
- 比如: nohub test.sh
11、shell中为什么要用 var1=$[ $var1 - 1 ] 而不是 var1=$var1 - 1
在 Shell 脚本中,var1=$[ $var1 - 1 ] 中使用 $[ ] 表示进行算术运算。这种语法可以确保 Shell 将 $var1 的值作为一个整数进行算术减法运算,并将结果赋值给 var1 变量。
如果使用 var1=$var1 - 1,Shell 将 $var1 和 - 视为两个不同的字符串,而不是一个减号运算符。这将导致脚本无法正确执行算术减法运算,从而使得 var1 的值不是期望的整数值
12、shell中这句程序 while [ $var1 -gt 0 ] 为什么要用[]
在 Shell 脚本中,方括号 [] 是一种测试命令的语法。它们用于测试条件是否为真,并根据测试结果执行不同的操作。在 while 循环中,方括号用于测试 $var1 是否大于 0
14、shell中如何定义函数
shell中有两种方式定义函数
14、如何使用函数
直接写出函数名即可
- 注意: 使用函数之前,必须要先定义好,不然会报错
15、函数的退出状态码是函数最后一条命令的退出状态码
- 函数退出状态码可以用全局变量
$?来获取
16、可以在函数中return出一个数字,这个数字在 0-255中,return出来后可以用 $? 来获取
17、如何获取函数的输出
-
$bb会获取函数中 echo的输出; -
$?会获取函数return出来的输出
18、shell中函数如何传参
直接写在函数后面,在函数中按照顺序取值
19、在函数内部,假如直接 vvv=“xxx” 是定义全局变量,在函数外部也可以访问;
假如使用 local vvv=“xxx” local关键字,则是定义局部变量,在函数外部不能访问
20、函数如何使用递归
test=$(factorial 22)
21、如何使用公共sh文件中的方法?
-
使用souce命令可以运行公共sh文件,公共文件中有add方法