再读:Linux系统命令及Shell脚本实践指南(三)
#
第十四章 测试和判断#
$?
test
和命令测试,
#方法一
kang@Mac :: ~/Downloads/PWN » test -e /var
kang@Mac :: ~/Downloads/PWN » echo $?
0
#方法二:
kang@Mac :: ~/Downloads/PWN 2 » [ -e /var ]
kang@Mac :: ~/Downloads/PWN » echo $?
0
if/else
判断
# 实例一
FILE="/var"
if [ -e $FILE ];then
echo "$FILE exist"
else
echo "$FILE not exist"
fi
#实例二
case
判断
seq命令
类似python中range,可以输出不同类型的序列
- Sequence from 1 to 10:
seq 10
- Every 3rd number from 5 to 20:
seq 5 3 20
- Separate the output with a space instead of a newline:
seq -s " " 5 3 20
- Format output width to a minimum of 4 digits padding with zeros as necessary:
seq -f "%04g" 5 3 20
第十五章 循环#
for
循环
#方法一
let
命令,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量
select
是一种菜单扩展循环方式,其语法和带列表的for循环非常类似,基本结构如下
#效果
kang@Mac :: ~/Downloads/PWN » . ./shell.sh
Hello world
1) apple 2) banana 3) beer
?# 1
You chose apple
第十六章 函数#
函数定义
函数返回值
利用
有参数函数
使用
计算一个数的多次方
第十七章 重定向#
所谓“重定向”,就是将原本应该从标准输入设备(键盘)输入的数据,改由其他文件或设备输入;或将原本应该输出到标准输出设备(显示器)的内容,改而输出到其他文件或设备上。
I/O重定向可以将任何文件、命令、脚本、程序或脚本的输出重定向到另外一个文件、命令、程序或脚本。
文件标识符
重定向中很重要的一个概念
Linux使用0到9的整数指明了与特定进程相关的数据流,系统在启动一个进程的同时会为该进程打开三个文件:标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr),分别用文件标识符0、1、2来标识。
如果要为进程打开其他的输入输出,则需要从整数3开始标识。
标准输出覆盖重定向其实是默认将文件标识符为1的内容重定向到指定文件中
kang@Mac :: source/go/project » ls -l > qwe.txt
#等同于 ls -l 1> qwe.txt
kang@Mac :: source/go/project » cat qwe.txt
total 24
drwxr-xr-x@ 3 a staff 96 10 27 10:59 handler
-rwxr-xr-x@ 1 a staff 10887 10 27 10:59 main.go
-rw-r--r-- 1 a staff 0 12 17 16:55 qwe.txt
drwxr-xr-x@ 4 a staff 128 10 27 10:59 static
drwxr-xr-x@ 5 a staff 160 10 27 10:59 templates
drwxr-xr-x@ 3 a staff 96 10 27 10:59 upload
**标识输出重定向:>&**
标识输出重定向的作用是将一个标识的输出重定向到另一个标识的输入。
使用场景,重定向错误信息
kang@Mac :: source/go/project 130 » find / -name *.txt > qwe.txt
find: /usr/sbin/authserver: Permission denied
find: /Library/Application Support/Apple/ParentalControls/Users: Permission denied
#错误信息没有写入到文件里面,仍然是显示在页面。
kang@Mac :: source/go/project 130 » cat qwe.txt
kang@Mac :: source/go/project »
使用标识输出重定向:>&
kang@Mac :: source/go/project » find / -name *.txt > qwe.txt 2>&1
^C
kang@Mac :: source/go/project 130 » cat qwe.txt
find: /usr/sbin/authserver: Permission denied
find: /Library/Application Support/Apple/ParentalControls/Users: Permission denied
标准输入重定向:<
标准输入重定向可以将原本应由从标准输入设备中读取的内容转由文件内容输入,也就是将文件内容写入标准输入中。
kang@Mac :: source/go/project 255 » sort
qwer
adsf
edc
#标准输入进行了排序 结束control+D
adsf
edc
qwer
#使用标准输入重定向:< 来重定向排序,交给sort处理
kang@Mac :: source/go/project » sort < qwe.txt
ads
asdp
dsnt
jiup
作者:kzd的前沿思考
出处:https://www.cnblogs.com/Fram3/p/15714037.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端