使用Shell进行自动化编程

大多数程序员使用诸如C,C ++,Python,Javascript之类的编程语言。 他们使用shell执行许多任务。 但是大多数人不知道他们可以使用shell编程来自动化我们发现的东西
自己一遍又一遍地做。

尽管shell的令牌数量受到限制,但它的功能在于
开发人员之手。 他/她可以编写程序并安装它,然后
可以像其他任何命令一样使用它的外壳。 那有多棒? 所以
下次您需要类似的东西时,只需煮一杯咖啡然后开始
编码…。

潜入

在本文中,我将分享一些有关shell的基本知识:
需要编程。 在此之前,让我们快速回顾一下最常用的
命令

ls —列出当前目录或给定目录中的文件和目录

pwd-打印当前工作目录

mkdir-使用当前目录中给定的名称创建目录

rm —删除指定的文件和文件夹

seq —以增量步长生成从头到尾的序列

cd —更改当前目录

cat —打印文件的内容

echo —打印在终端中传递给它的字符串

还有更多的命令,以上命令足以执行。 如果您需要了解更多信息或详细研究上述命令,请随时进行操作。

让我们开始吧

让我们回答这个问题

编程语言中的基本内容需要什么?

答案是……

  1. 变量和数据类型
  2. 控制语句[如果,则为..]
  3. 算术表达式和布尔表达式

嗯,以上是进行基本自动化所需的工作,但壳牌公司也有

  1. 数组
  2. 正则表达式和相关工具
  3. 与用户和环境进行交互的I / O功能
  4. 功能
  5. 其他

开始笔记

  1. 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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值