zoukankan      html  css  js  c++  java
  • Shell编程

    shell编程

    shell变量的特点?

    ——弱类型

    ——默认字符串型(字符串型是不能直接进行加减乘除数值运算,因此需要进行数值运算时,需要将shell变量声明为数值型,不要使用默认值)

    ——可以把指令写到一个文件中,shell对这个脚本操作就可以一次执行多个操作。但是如果一条条执行会很麻烦,shell支持条件控制、循环嵌套特性

     

    说明:

     

    指定解析器

    一定要在第一行执行解析器,我们使用的是bash,当然也可以使用python、ruby写脚本。

    语句即命令

    我们在学会一个命令时,放在命令行中就是命令,放到脚本中就是一条语句。

    脚本中命令可以直接罗列,也可以包含到函数之中,通过呼叫函数名执行:

     

    命令对空格敏感,脚本语句对空格变态地敏感!

    位置参数

    脚本语言:

    引用第一个sh时,使用$0($表示位置)。$#代表一共多少个参数。

    操作:

    脚本不在当前shell执行

    我们在执行任意一个脚本程序的时候,并不是在这个shell执行,而是新开一个shell,虽然我们看不到这个shell。

    操作:

    注:虽然得到了脚本的目的,但是当前目录并未改变,也就是说不是在这个shell中执行的操作。

    其中vim中语句为:

    如果想在当前shell执行语句:

    注:当前工作目录已经变了。



     

    declare命令

    ——用来声明变量类型

    格式:

     

    注:在这里要格外注意,我们需要添加一个声明时用“-”,而不是“+”。

    举例:

    把变量声明为数值型

    注:这里我们可以明确看出,在默认情况下变量为字符型,因此c默认输出为11+22,如果想想要输出加法运算的结果,则需要将c声明为int类型(a、b不需要声明为int,因为声明c后,在进行a+b运算时会自动将后面进行转化)。

    可以查看变量属性:

    声明数组变量

    操作:

    注:在查看数组的时候,$后面需要添加{},在不加下标,直接以数组名给出时默认显示第一个数组元素,加上*时,显示全部。

    声明环境变量

    注:环境变量的声明实际上也是declare命令。-X表示声明为环境变量。如果这样操作:

    Export aa,即表示把aa声明为环境变量,则在执行bash-->set这两个指令时只能看到aa,不能看见bb。Bb只会出现在当前目录。

    声明变量只读属性

    操作:

    注:这里不能修改和删除。甚至我们执行撤销属性都不可以。在实际应用中要格外注意,如果将制度属性的变量加到某一系统环境变量中在开机时会自启动,这样会出错。我们这里设置的是临时环境变量,系统重启后消失。因此,只读属性并不是很好用,实际中尽量少用。

    查看变量属性

    数值运算方式

    数值运算方法1

    注:这种方法需要敲很多指令,麻烦。

    方法2exprlet数值运算工具

    操作:

    注:在没有空格的时候不会进行直接加的运算,而是当做字符串运算。

     

    方法3:”$((运算符))”或”[运算符]

    注:推荐这种写法”$((运算符))”

    区分以下的方式:$(运算符)——它的作用是把系统命令先执行,再把命令的结果赋予变量。

     

     

    运算符

    注:优先级越高数值越大。实际中用到的数值运算并不多。

    变量测试

    简介

    只针对shell语言有效,比较复杂。在实际中可以用其他方式取代,格式复杂,语法简单,了解即可。

    注:在优化时用到,比如php写的网页脚本,访问量很大,就需要优化。在实际中shell一般是管理员用(因为我们的目的就是办公自动化),所以要求逻辑要清晰,而这种方式并不是很适用。

    例子1:测试x=${y-新值}

     

     

     

    循环控制

    脚本

     

    但是这个脚本有局限性,就是引入另外一个文件再执行这个脚本时不起作用,也就是说这个文件只针对于某一个特定情况。需要改进:

    在tab上方有导引号``,如果在vim中输入命令:形如’pwd’,导引号就能输出命令的输出。

    这样脚本就具有通用型了。

     

    远程执行

    每次都连接服务器还是有点麻烦,我们可以在本地执行一个脚本,直接把服务器上的事办了。

    注:引号中的语句就会在服务器中执行。

     

    确认执行:

    默认是y。

    但是如果有一天我们删除了其中一个很有用的文件,比如jim.txt再执行脚本时:

     

    这时会提示是否删除删除这个脚本,这种提示功能非常好。我们可以选择no不删除。

     

    用其他语言写脚本

    Bash的语法偏机器思维。比较晦涩。



  • 相关阅读:
    在三层开发的DAL层中, 从web.config中读取数据库的连接字符串的方法
    [转]使用 DataAdapter 执行批量更新
    各式各样的 ICONS
    20个“标准的”配色方案
    一款 FORM 框报错提示 Demo
    超漂亮的仿腾讯弹出层效果
    POJ 2192 (DP)
    POJ 2063 (DP)
    POJ 3624 (DP)
    JavaScript技巧集
  • 原文地址:https://www.cnblogs.com/yedushusheng/p/5524581.html
Copyright © 2011-2022 走看看