《Linux 命令行与shell脚本》-11
🌈 shell 脚本文件开头:#!/bin/bash
🌈 注释:# (多行注释多少有点没必要)
🌈 如何运行你写好的.sh脚本:
chmod u+x [file]
./[file]
🏳️🌈显示消息
shell里面使用echo完成C++里面cout的功能
echo hello word
echo "hello world" #一般不加“”,除非里面含有引号,如下
echo "hello 'nice' world"
如何不换行显示消息
echo -n "one line "
echo "next line"
## 结果:one line next line
🏳️🌈变量(用什么变量都要用引用)
🚩引用变量的方式:
$()
$
``
🚩环境变量
一般用不到,记几个经典的:
UID:用户系统ID
User:用户的名称
HOME:家目录下用户的目录
🚩用户变量(扯啥,就是shell脚本里面的变量)
day=10 #注意:变量和等于号之间不可以有空格!!!
day=$(date +%y%m%d) #这是一种日志文件生成的高级操作
ls /user/bin -al > log.$day #涉及一丢丢重定向
结果:生成了一个文件log.231004,里面有ls命令的内容
🏳️🌈重定向
啥是重定向:将输出结果保存到文件 or 从文件中读取命令
🚩输出重定向
commond > [outputfile]
🚩输入重定向
commond < [outputfile]
🎌管道没看太懂,之后找找视频补一补
命令的输出直接重定向到另一个命令的输入
🏳️🌈数学计算(expr or ``or [] )
这哥仨都只支持整型,但是我不明白为啥要用shell进行数学计算,C语言不香嘛
echo $(expr 3 + 4) #注意空格啊 这里*等字符需要转义
echo $[1 + 5]#空格either 这个不需要转义
#``不咋地,就不说了
ps:如何解决浮点数计算呢?(滚去用C!)
ans:用Linux的bc计算器
命令行直接pc
脚本里面也可以用(内联的重定向比较繁琐,有需求就翻书P228)
echo $(echo "options;expressions" | bc) #options可以设置变量什么的;expressions是用于计算的
🏳️🌈退出脚本后的状态码
$?:linux用于保存上一个退出状态码的变量
状态码 | 描述 |
---|---|
0 | 成功退出 |
127 | 没找到命令 |
130 | ctrl C推出的 |
128 | 无效的退出参数 |
ps:可以在脚本末尾指定退出状态码
exit num