zoukankan      html  css  js  c++  java
  • Shell脚本之:变量

    与编译型语言不同,shell脚本是一种解释型语言。

    执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code),再由计算机运行。

    Linux默认的脚本解析器是bash。

    参考资料 http://c.biancheng.net/cpp/view/6994.html

    第一个Shell脚本

    下面演示我们的第一个shell脚本,使用文本编辑器(如vi),键入如下代码并保存为hello.sh

    #!/bin/bash

    # 打印hello world echo
    "Hello World !"

    然后给该脚本赋予执行权限

    chmod +x ./hello.sh

    然后执行该脚本,终端就会显示Hello World!

    其中脚本第一行#!/bin/bash 指明了该脚本的解释器

    sh里没有多行注释,只能每一行加一个#号

    read命令

    下面的脚本使用read命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出

    #!/bin/bash
    echo "What is your name?"
    read PERSON
    echo "Hello, $PERSON"

    下面是运行情况

    Shell变量

    定义变量

    variableName="value"

    使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:

    name="runnyu"
    echo ${name}

    花括号可加可不加,加花括号是为了帮助解释器识别变量的边界。使用readonly+变量名可以将变量定义为只读变量,unset+变量名可以删除变量

    readonly name
    unset name

    特殊变量

    编写special.sh测试

    #!/bin/sh
    echo "pid=$$"
    echo "$0"
    echo "$1"
    echo "$2"
    echo "$#"
    echo "$*"

    运行结果

    $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

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

  • 相关阅读:
    Vim的行号、语法显示等设置,即.vimrc文件的配置
    Vim 配置详解
    经典SQL语句大全
    几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比
    GHOST XP SP3无法安装IIS服务的解决方法
    开发中巧用Enum枚举类型
    代码的坏味道
    C#转义字符
    Dijit、ExtJS、jQuery UI 异同浅析
    未雨绸缪 Plan to Throw One Away
  • 原文地址:https://www.cnblogs.com/runnyu/p/4675537.html
Copyright © 2011-2022 走看看