大多数程序员使用诸如CC PythonJavascript之类的编程语言。 他们使用shell执行许多任务。 但是大多数人不知道他们可以使用shell编程来自动化我们发现的东西 自己一遍又一遍地做。
尽管shell的令牌数量受到限制但它的功能在于 开发人员之手。 他/她可以编写程序并安装它然后 可以像其他任何命令一样使用它的外壳。 那有多棒 所以 下次您需要类似的东西时只需煮一杯咖啡然后开始 编码…。
潜入
在本文中我将分享一些有关shell的基本知识 需要编程。 在此之前让我们快速回顾一下最常用的 命令
ls —列出当前目录或给定目录中的文件和目录
pwd-打印当前工作目录
mkdir-使用当前目录中给定的名称创建目录
rm —删除指定的文件和文件夹
seq —以增量步长生成从头到尾的序列
cd —更改当前目录
cat —打印文件的内容
echo —打印在终端中传递给它的字符串
还有更多的命令以上命令足以执行。 如果您需要了解更多信息或详细研究上述命令请随时进行操作。
让我们开始吧
让我们回答这个问题
编程语言中的基本内容需要什么
答案是……
嗯以上是进行基本自动化所需的工作但壳牌公司也有
开始笔记
Shell程序以.sh扩展名保存。 它们可以与
#shellname program.sh#Examplesh pro1.sh
有很多shell例如Z shellC shellbash等。 最常见的是bash。 如果没有请安装。 问你的 如果您没有足够的权限来获得管理员的许可 执行程序。
本文假定您正在使用bash并且具有编程经验。
变量和数据类型
只需输入以下内容即可设置shell中的变量
VARIABLEVALUE
例子是
numberVariable3;realVariable3.14;stringVariable_1pi;stringVariable_2 "pi" ;
控制语句[如果则为..]
如果陈述
if [testCondition]then#codeblockfiORif[testCondition]then#code blockelse#codeblockfi
例子
if [ $a -eq $b ] # -eq tests whether left operand is equal to the right operandthenecho "a is equal to b"elseecho "a and b are not equal"fi
虽然声明
像其他编程语言一样while is shell的语法类似
while [ testCondition ]do#code blockdone
例子
i0while [ $i -lt 10 ]doecho $i ;i$((i1)); #increment the varaible idone
声明
for语句的语法是
for variable in sequencedo#codeblockdone
变量是通常的变量而顺序是由空格分隔的值列表。
例
for i in 1 2 3 4 5 6doecho $i ;done
算术表达式
在shell中可以使用常规算术表达式其中包括运算符-*/和以及常用的硬核值和变量以$前缀。 您应将算术表达式括在$exp或任何其他标准格式中。 请参阅下面的代码段…
i5;echo $((12));echo $(( $i -3));echo $((7/2));echo $((7%5));
布尔表达式
这是shell与大多数语言不同的地方。 布尔表达式的形式为操作数-relop操作数
操作数可以是硬核值或变量或者它们本身是布尔表达式和relop可以是下列值之一
- -lt小于运算符其他语言中的“ <”
- -le小于或等于运算符在其他语言中为“≤”
- -gt大于运算符在其他语言中为“>”
- -ge大于或等于运算符在其他语言中为“≥”
- -eq等于运算符在其他语言中为“ ”
- -ne等于运算符在其他语言中为“”
- -a用于逻辑和运算符其他语言中的“
- -o表示逻辑或运算符在其他语言中为“ ||”
- 表达式—非运算符其他语言中的“表达式”
看下面的例子
if [ 3 -eq 3 -a 3 -ge 2 ]thenecho "work begins" ;fiif [ ! 3 -ge 4 ]then echo "! 3>4" ;fi
现在就这样。 我们可以花点时间尝试将其用于 场景。 下一部分是我的最爱。 我总是使用该代码段 组织下载目录。
样例程序
让我们考虑一个简单的场景。 考虑到您在单个文件夹中拥有自己喜欢的电视连续剧每个季节的所有视频并且希望将它们按季节进行组织。 多亏适当的情节命名S0xE0x。 以下代码段将为您完成这项工作。
for i in seq 5 #consider that we have 5 seasons domkdir S $i ; # creating directorymv *S $i * S $i ; #moving the filesdone
如果这4行脚本可以节省很多工作请考虑一下您还可以做什么。
尾注
因此如果您发现自己反复键入一些命令或任务请尝试使其成为一个Shell程序。
恭喜你 您做到了最后。 希望本文对您有所帮助。
查看我的个人资料以查找更多文章。
谢谢。
用Shell进行愉快的编码…………
From: https://hackernoon.com/programming-with-shell-7d3n02esk
【转自:香港高防 http://www.558idc.com/stgf.html转载请说明出处】