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