编写shell脚本
基本命令
命令 | 说明 |
---|---|
ls | 列出目录中的文件和子目录。 |
cd | 切换当前工作目录。 |
pwd | 显示当前工作目录的路径。 |
mkdir | 创建新目录。 |
rm | 删除文件或目录。 |
cp | 复制文件或目录。 |
mv | 移动文件或目录。 |
touch | 创建空文件或更新文件的时间戳。 |
cat | 连接文件并打印到标准输出。 |
grep | 在文件中搜索指定模式。 |
awk | 用于处理文本文件的命令语言。 |
sed | 流式文本编辑器,用于过滤和转换文本。 |
echo | 在标准输出上打印文本。 |
chmod | 更改文件或目录的权限。 |
chown | 更改文件或目录的所有者。 |
ps | 显示当前运行的进程。 |
top | 实时显示系统中的进程信息。 |
kill | 终止进程。 |
ifconfig / ip | 显示和配置网络接口。 |
ping | 向主机发送 ICMP 回显请求。 |
traceroute / tracert | 显示数据包传输路径。 |
ssh | 安全地远程登录到另一台计算机。 |
scp | 在本地主机和远程主机之间安全地复制文件。 |
tar | 压缩和解压缩文件。 |
gzip / gunzip | 压缩和解压缩文件。 |
read | 读取输入到一个变量 |
date | 输出日期时间 |
whoami | 打印当前用户 |
脚本示例
1 |
|
shell脚本中也有变量,函数,条件分支和循环等。首先generate_name()
就是定义了一个函数,内部使用local
来声明一个局部变量,$1
表示第一个入参,$2
表示第二个入参。
条件分支使用if
开启,使用fi
结束,条件语句要放到方括号中,并且前后必须要空格隔开,-le
表示小于等于,还有其他的大于等于-ge
,等于-eq
等。
for i in{1..3};
是一种迭代的写法,表示i依次取1,2,3,然后do
开启循环内部逻辑块,然后通过done结束循环。还可以使用
1 | for ((initialization; condition; increment )); do |
这种形式,类似于高级语言中的for循环。
这个demo脚本的功能就是读取三次输入的名称和年龄,然后调用函数判断是否年龄大于18了。
环境变量
可以使用export
命令给当前终端添加环境变量。
1 | export $name=zhangsan |
如果想要永久保存,可以在.bashrc或者.profile文件中添加export
命令来添加环境变量。
猜数字游戏脚本示例:
1 |
|
大部分都是上面提到过的了,不过还有一个number的赋值的这个用法我们没见过。$()
用来执行命令替换,小括号里面的是要执行的命令,然后将命令执行的结果返回出来,这里就是生成一个1到100的随机数,然后将生成的随机数结果返回给number变量。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 cwt技树年轮!
评论