zoukankan      html  css  js  c++  java
  • shell基本脚本命令

           Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出屏幕返回给用户

    Shell 脚本必须要素:

    ①  脚本文件名字必须以.sh结尾。

    ②  声明:打开脚本的第一句话必须写上#!/bin/bash(通常#后面的是不会被解析的,但是加上!就是告诉操作系统用什么解释器去解释)。

    如何执行一个脚本:

    ①  以命令方式执行脚本

    bash yunjisuan.sh

    sh yunjisuan.sh

    ②  给脚本可执行权限x,然后以脚本的绝对路径方式执行脚本

    /root/benet/yunjisuan.sh

    脚本里面出现的必须是都是免交互的。如passwd –stdin test1

    基本脚本命令:

    一、逻辑判断

    脚本理论的命令是死的,不会像人一样通过眼睛判断是否可执行。因此,我们需要对脚本的命令进行是否可行的逻辑判断(真/假),判断后在进行命令的执行。

    (1)文件测试

    通过test –d(f) 来判断目标是目录还是文件

     

    脚本里:test –d /root && cd /root && pwd

    -e  判断目标是否存在

    -r 判断是否有读权限

    -w 判断是否有写权限

    -x 判断是否有可执行权限

    -z 判断字符串是不是空(空格为不空)

    ## 我们可以通过特殊方式判断字符串是否为空

    (了解)$ {#变量名} =====》输出变量的字符位数如果是0,代表变量为空

    判断变量的字符个数:

      

    (2)通过中括号[](逻辑判断符号)来判断目标是否是目录还是文件,还能进行字符串判断以及数字大小的比对。

    [ -d /root/benet ]  判断是否为目录

    [ -f /root/benet/yunjisuan.sh ]  判断是否为文件

    [ $变量 == “”“字符串” ]  进行字符串是否向相等判断

    [ $变量 – gt(lt,le,ge,eq) 数字 ] 进行数字大小判断

    -gt (great than)代表大于

    -lt (less than)代表小于

    -eq 代表等于

    -ge 是大于等于

    -le 是小于等于

    == 是等号,x == 3,判断

    = 是赋值(赋值语句,数字可以不加“”,但是字符串加“”)

            结论:以上判断均可通过$?进行成功与否的取值,0代表判断为真,非0代表判断为假。

    (3)关于逻辑与&&  逻辑或||

    &&符号的左边为真(0),方可执行右边,否则右边不执行

    || 符号左边为假(非0),方可执行右边,否则右边不执行

    注:变量名只能由字母、数字、下划线组成,且以字母开头。逻辑与可以连接很多,用逻辑或(在最右边)就不要在用逻辑与了,造成逻辑混乱

    shell 脚本的意义:

    通过命令行解析的方式帮我们自动去执行我们设定好的代码;假如我们把脚本挂到定时任务里,那就是自动的在某个没有人的时间里自动触发干活程序。

    二、关于脚本交互式输出模式:

    (1)我们可以通过read命令进行交互式输入

    例如:read 变量    或者 read –p “文本提示” 变量

     

     

     

    三、命令行传参

     

    $# 代表传给脚本的参数的个数

    $* 代表横向罗列参数

    $0 文件的执行路径

    $1..$n 对应传入的不同的参数

    $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同

    注:但是当$@和$*被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

  • 相关阅读:
    你是否听说过 HashMap 在多线程环境下操作可能会导致程序死循环?
    深入浅出分析 PriorityQueue
    深入浅出分析 ArrayDeque
    深入浅出的分析 Set集合
    深入浅出的分析 Properties
    深入浅出分析 HashMap
    深入浅出的分析 Hashtable
    深入浅出的分析 WeakHashMap
    深入浅出的分析IdentityHashMap
    python 执行js PyExecJS
  • 原文地址:https://www.cnblogs.com/juanne/p/9878241.html
Copyright © 2011-2022 走看看