zoukankan      html  css  js  c++  java
  • shell 脚本的基本定义

    注意不能有控制,指令之间
    
    【1】shell脚本的基础知识
        (1)shell脚本的本质
    	 编译型语言
    	 解释型语言
    		shell脚本语言是解释型语言
    		shell脚本的本质
    			shell命令的有序集合
        (2)shell 编程的基本过程
    	 基本过程分为三步:
    	 step1. 建立 shell 文件
       	        包含任意多行操作系统命令或shell命令的文本文件;
    	 step2. 赋予shell文件执行权限
     	        用chmod命令修改权限;
    	 step3. 执行shell文件
       	        直接在命令行上调用shell程序.
        (3)实例
    	 step1: 建立shell文件 (可用任何建立文本文件的方法)
      		   $ cat  prog1.sh
      		     date
    	 Step2: 赋予执行权限:  (初始文本文件无执行权限)
       		   $ chmod  740  prog1.sh
    	 Step3: 执行该shell程序
      	           $ prog1.sh
           		     prog1.sh: not found    
         		     (shell在标准搜索路径中找不到prog1.sh)
    	 Step4: 指定路径或修改环境变量PATH后执行shell程序
       		   $ ./prog1.sh  
       		   2009年  12月  16日  星期二  14:52:57  CST
    

      

    变量是用$来定义,注意不能有空格
    

      

    【2】shell变量
        (1)shell变量
    	 shell允许用户建立变量存储数据,但不支持数据类型(整型、字符、浮点型),
    	 将任何赋给变量的值都解释为一串字符
    						Variable=value
    	 a.   count=1
    	 b.   echo $count
    	 c.   DATE=`date`
    	 d.   echo $DATE
         (2) Bourne Shell有如下四种变量:
    		1) 用户自定义变量 
    		2) 位置变量即命令行参数 
     	 	3) 预定义变量 
    		4) 环境变量
         (3) 用户自定义变量
    	 1) 在shell编程中通常使用全大写变量,方便识别 
    		$ COUNT=1
    	 2) 变量的调用:在变量前加$ 
    		$ echo $HOME 
    	 3) Linux Shell/bash从右向左赋值
    		$Y=y
    		$ X=$Y
    		$ echo $X 
    		y	 
    	 4) 使用unset命令删除变量的赋值 
    		$ Z=hello 
    		$ echo $Z 
    		hello 
    		$ unset Z 
    		$ echo $Z 
         (4) 位置变量
    	 $0   与键入的命令行一样,包含脚本文件名
    	 $1,$2,……$9  分别包含第一个到第九个命令行参数
    	 $#   包含命令行参数的个数
    	 $@   包含所有命令行参数:“$1,$2,……$9”
    	 $?   包含前一个命令的退出状态
    	 $*   包含所有命令行参数:“$1,$2,……$9”
    	 $$   包含正在执行进程的ID号
         (5) 常用shell环境变量 
    	 HOME: /etc/passwd文件中列出的用户主目录 
    	 IFS:Internal Field Separator, 默认为空格,tab及换行符
    	 PATH :shell搜索路径
    	 PS1,PS2:默认提示符($)及换行提示符(>) 
    	 TERM:终端类型,常用的有vt100,ansi,vt200,xterm等 
    

      

    count=1 
    echo $count
    
    count='a'
    echo $count
    
    count="aaaa"
    echo $count
    
    count=1.1
    echo $count
    
    DATE='date'
    echo $DATE
    
    TEST='ifconfig'
    echo $TEST
    
    echo "num:$#"  #打印出来参数个数$#
    echo "all paras:$*"打印出来参数有哪些
    
    echo "all paras:$@"
    echo "$0 is $0"
    echo "$1 is $1"
    echo "$2 is $2"
    echo "$3 is $3"
    echo "$4 is $4"
    echo "$5 is $5"
    echo "$6 is $6"
    echo "$7 is $7"
    echo "$8 is $8"
    echo "$9 is $9"
    echo "$10 is ${10}" #注意当有2个的时候,需要有大括号
    echo "$11 is ${11}"
    

      

  • 相关阅读:
    第二卷 Spring羊群理论
    logstash7.9.1-官方教程1-快速开始
    springboot-starter定制-Drools模块封装
    集群多节点动态刷新方案-Nacos配置修改监听
    Drools-决策表使用2-集成springboot
    Drools-决策表使用1-快速开始
    springboot-springmvc文件上传、下载、压缩打包
    Java8实用指北1-lambda表达式与函数式接口
    bug:IntrospectionException-Method not found异常与lombok
    res:bean属性复制避免null值覆盖版本
  • 原文地址:https://www.cnblogs.com/jack-hzm/p/10165481.html
Copyright © 2011-2022 走看看