如何写一个简单的shell脚本
最近是实习的时候一直在linux服务器里搬砖,总是敲一些重复的命令,让我有些烦躁,能用代码解决的事情就不要敲键盘,本小辣鸡决定学习下shell脚本怎么使用。
首先,我们先创建一个shell脚本,记得创建玩之后给它修改一下权限,不然不能执行有个p用
$ vim nb.sh
$ sudo chmod 777 nb.sh
创建完之后,我们开始向里面写入内容了,先不管网上说的,我个人理解,shell脚本就是将一些终端里可以执行的命令放到一个文件了,省得敲这么多字,简直懒人必备啊。接下来,我来介绍一下常用的一些辅助命令,和编写语法(因为我自己在边学习边写,所以可能会不全,我会慢慢补全的)
1. 在终端中打印
本辣鸡以前从来没有在终端中打印过东西,刚写脚本时,里面好几个命令,我向每执行完一个命令输出一句话。
#nb.sh文件里面
#!/bin/bash
echo "I am nb"
就这么简单
2. 传参
写脚本不传参数叫什么写脚本
$ ./nb.sh arg1 arg2 arg3 (.......more arg)
一般这些arg都是参数,我们可以通过这些arg,来对脚本里面代码进行控制,脚本里$0 表示"./nb.sh"这个命令,$1表示arg1,2表示arg2,以此类推。如果脚本前面加了sudo仍然不变,2表示arg2,以此类推。如果脚本前面加了sudo 仍然不变,2表示arg2,以此类推。如果脚本前面加了sudo仍然不变,不会认sudo的。现在举个栗子,写个显示所有参数的脚本
#nb.sh文件里面
#!/bin/bash
for args in $@
do
echo $args
done
这个代码就可以打印出所有的参数了。
###3. 条件语句和判断
能调用参数之后,肯定少不了条件语句和判断,shell脚本这个还是很恶心的。
- if elseif else
这个条件判断
if command
then
command
elif command
then
command
else
command
fi
如果我们需要在条件里面写入判断,这里就比较奇怪,网上的代码有些无法复现,会报错command not found
我写出我电脑中实现的方法
#!/bin/bash
if [ $1 -eq 1 ]
then
echo "nb 1"
elif [ $1 -eq 0 ]
then
echo "nb 0"
else
echo "nb must input"
fi
相等必须得使用-eq, 而且if后面的方框前后必须有一个空格,像网上的==、>=、<=都用不了。下面总结一下判断符号。
| 符号 | 含义 |
|---|---|
| -eq | 等于 |
| -ne | 不等于 |
| -gt | 大于 |
| -lt | 小于 |
| -ge | 大于等于 |
| -le | 小于等于 |
3 单引号双引号和反引号
shell 脚本中引号分为三种,单引号、双引号和反引号。
- 单引号
单引号括起来的字符只会作为普通字符出现,特殊字符用单引号括起来也会失去其原有的意义 - 双引号
双引号括起来的字符,除$ \ ’ “属于特殊字符并保持其特殊功能之外,其余字符仍作为普通字符对待。 - 反引号
反引号括起来的字符串会被解释成命令行,执行时shell首先执行该命令行,然后以它的标准输出结果取代整个反引号部分。
本文是一篇关于Shell脚本的基础教程,介绍了如何创建和运行简单的Shell脚本,包括在终端中打印信息、接收参数以及条件判断的使用。通过实例展示了如何在脚本中使用$0, $1等变量来处理参数,还探讨了单引号、双引号和反引号的用法。"
21912,3964,C#在AutoCAD二次开发中的应用实践,"['C#开发', 'AutoCAD接口', '图形API', '类库应用', 'VBA集成']
917

被折叠的 条评论
为什么被折叠?



