shell 变量
菜鸟教程 shel 变量
使用变量 ${}
变量设置为只读 readonly
unset 删除变量
1.shell 命令
echo
echo 命令用于向窗口输出文本
echo 'hello world'
效果
echo输出的字符串总结
==================================================================
能否引用变量 | 能否引用转移符 | 能否引用文本格式符(如:换行符、制表符)
单引号 | 否 | 否 | 否
双引号 | 能 | 能 | 能
无引号 | 能 | 能 | 否
==================================================================
> 重定向输出到某个位置,替换原有文件的所有内容。
>> 重定向追加到某个位置,在原有文件的末尾添加内容。
printf
类似 echo
%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。
%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中 .2 指保留2位小数
test
检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真
代码中的 [] 执行基本的算数运算 注意需要空格
num1=100
num2=200
if test $[num1+num1] -eq ${num2}
then
echo '两个数相等!'
else
echo '两个数不相等!'
fi
if [ ${num1} == ${num2} ]
then
echo '两个数相等!'
else
echo '两个数不相等!'
fi
wc
wc命令用于计算字数
wc指令我们可以计算文件的Byte数、字数、或是列数
-c或–bytes或–chars 只显示Bytes数。
-l或–lines 显示行数。
-w或–words 只显示字数
没有文件参数输出
awk
一种处理文本文件的语言
yyds
关于 awk 脚本,我们需要注意两个关键词 BEGIN 和 END。
BEGIN{ 这里面放的是执行前的语句 }
END {这里面放的是处理完所有的行后要执行的语句 }
{这里面放的是处理每一行时要执行的语句}
head
head 命令可用于查看文件的开头部分的内容
-q 隐藏文件名
-v 显示文件名
-c<数目> 显示的字节数。
-n<行数> 显示的行数
sed
sed 可依照脚本的指令来处理、编辑文本文件
参数说明:
-e <script文件>或–expression=<script文件> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或–file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-n或–quiet或–silent 仅显示script处理后的结果。
sed -e 才对,没有 -e 也行啦!同时也要注意的是, sed 后面接的动作,请务必以 ‘’ 两个单引号括住
动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
seq
seq命令用于产生从起始值到结束值之间、固定增量的所有浮点数
-f, --format=格式 使用printf 样式的浮点格式
-s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n)
-w, --equal-width 在列前添加0 使得宽度相同
seq [选项]… 起始值 增量 结束值
tail
tail 命令可用于查看文件的内容
-f 循环读取
-n<行数> 显示文件的尾部 n 行内容
tail -n -5 /test001/text001 与 tail -n 5 /test001/text001 显示的结果相同,均是文件末尾最后 5 行内容。
tail -n +5 /test001/text001 显示的内容为从第 5 行开始,直到末尾的内容。tail -n 后面的数字有效输入只有单个数字(5)或者加号连接数字(+5)两种
grep
grep 命令用于查找文件里符合条件的字符串
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容
-v 或 --invert-match : 显示不包含匹配文本的所有行。
-i 或 --ignore-case : 忽略字符大小写的差别。
touch
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。
若文件不存在,系统会建立一个新的文件
2. < 、<< 、<<< 、>、>>
1、> 覆盖输出到文本
2、>>追加到文本
3、< 将后面文件作为前面命令的输入
4、<< 带命令作用全文匹配某个字符串后结束
5、<<<部分匹配某个字符串