shell脚本中变量的定义和使用:

  1.shell中变量名可以由字母,数字,下划线组成,但数字不能作为变量名的第一个字符。

  2.通过赋值符号"="来定义一个变量

    如:myname='galley'  #字符串类型,不解析任何字符

      courses="abcdef"  #双引号内部会解析$和反斜杠特殊字符

      sum=100;price=1.25

      now_date=`date`  #反引号执行系统命令

 shell中的变量只有字符串类型,所以当你不用引号引起来的时候要保证变量的值不包含特殊符号,如空格,美元,&

  3.变量的引用,适用美元符号$加变量名,来引用一个变量的值

    如: 定义变量:programe_name="http"

      引用变量:echo $programe_name

      或者    echo{$programe_name}

  4.变量名外面的花括号

    是可选的,加花括号是为了帮助解释器识别变量的边界,比如下面情况:

      #!/bin/bash

      for skill in pop java linux db2

        do

          echo "i  am good at  ${skill}Script" #帮助shell解释器识别边界值

        done

shell环境变量,局部变量以及预定义变量:

  环境变量的定义:

    一般指操作系统中运行环境的一些参数,如PATH,PWD,USER,当前使用$shell名称等

  常见的环境变量:

    PATH:系统路径

    HOME:当前用户目录

    HISTSIZE:保存历史命令记录的条数

    LOGNAME:当前用户登录名

    HOSTNAME:主机名称,若应用程序要用到主机名的话,一般是从这个环境变量中取得的

    SHELL:当前用户用的是哪种shell

    LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量

    MAIL:当前用户邮件存放目录

  查看环境变量:

    env:显示所有环境变量

    echo $PATH:显示某一个环境变量的值

  局部变量包括:

    1.在shell脚本中由用户自定义的变量

       shell脚本中定义的变量作用域是从被定义的地方开始,到shell结束为止,起作用域为本脚本,离开脚本,变量无效

    2.在用户登录的shell中定义的变量,重新登录后该变量消失

  预定义变量:

    预定义变量和环境变量类似,也是shell一开始就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重新定义它,所有预定义变量都是由$符号和另一个符号组成的,常用的shell预定义变量有:

    ·$# 位置参数变量

    ·$* 所有位置参数内容

    ·$?命令执行后的返回状态。   #0 表示成功,非0表示失败。

    ·$$ 当前进程的进程号

    ·$!后台运行的最后一个进程号。   很少用 了解即可

    ·$0 当前执行的进程名

变量的输入和输出:

  1.echo 命令发送数据到标准输出设备,数据采用的是字符串的方式,echo命令可以输出一个变量。

    

  2.echo 两个重要的参数

    -e    # 识别输出内容里的转义序列

    

    -n   #忽略结尾的换行

    

  3.printf和echo的功能类似,printf也可以输出变量,printf还可以按照格式输出变量

    注意的是:

      1)printf的默认是没有换行的,换行需要自己添加“\n”

        

      2)printf支持格式化输出

        

   read输入:read命令读取标准输入设备的下一行,标准输入中的第一行到换行符前的所有字符都会被读取,并赋值给对应的变量。

        可以结合echo一起实现读取并输出的功能

        

        1.1.1.1为键盘输入。

Linux shell 编写(2)的更多相关文章

  1. Linux shell编写脚本部署pxe网络装机

    Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机  https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...

  2. Linux shell编写端口扫描脚本

    Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...

  3. Linux shell 编写(1)

    shell脚本的编写步骤 1.创建以.sh为扩展名的文件           touch 2.编辑脚本文件                              vim 3.增加脚本文件执行权限 ...

  4. linux 下shell 编写脚本

    linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...

  5. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  6. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  7. Linux Shell编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  8. Linux Shell入门(转载)

    From:http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用 ...

  9. 转:Linux Shell编程入门

    http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来 ...

随机推荐

  1. 【JS】#001 JS定义对象写法(原型、JSON方式)

    下面主要写两种 JS 定义对象的 常用写法 写法1:[很像面向对象语言中的写法] function zhongxia(age) { this.age = age; } zhongxia.name = ...

  2. SOJ 4583 动态规划之分组背包

    Description Sidney想去Gandtom家玩.但Sidney家和Gandtom家之间是高低不平.坑坑洼洼的土路.所以他需要用他的背包装几袋稀的泥,在路上铺平一些干的土,使路变成平整的泥土 ...

  3. 情绪ABC理论

    美国著名心理学家阿尔伯特·艾利斯 [Albert Ellis 1913.09.27]于20世纪50年代创立, 其理论认为引起人们情绪困扰的并不是外界发生的事件,而是人们对事件的态度.看法.评价等认知内 ...

  4. Hive学习之路 (十五)Hive分析窗口函数(三) CUME_DIST和PERCENT_RANK

    这两个序列分析函数不是很常用,这里也练习一下. 数据准备 数据格式 cookie3.txt d1,user1, d1,user2, d1,user3, d2,user4, d2,user5, 创建表 ...

  5. [翻译]怎么写一个React组件库(一)

    本文同步发布于知乎专栏 https://zhuanlan.zhihu.com/p/27401329,喜欢本文的就去知乎点个赞支持下吧- 引言 该系列文章将通过创建一个组件库来引导你学习如何构建自己的组 ...

  6. 使用JS获取上一页的url地址

    一般来说每个页面上面都有一个返回按钮,用来返回上一页,代码如下: <a href="javascript:history.go(-1)" class="jsBack ...

  7. Luogu五月月赛

    首先,到此为止,我只会\(t1\).\(t2\) T1: \(\color{red}{Description}\) \(Alice\) 和 \(Bob\) 在玩游戏. 他们有 \(n\) 堆石子,第\ ...

  8. (转)Python学习笔记系列——Python是一种纯粹的语言

    此文出自知乎灵剑,原文传送门:https://zhuanlan.zhihu.com/p/23926957. 在摸索适合自己的语言学习方法,看到一篇好文章,转之,侵删. Python的语法范式相当多.知 ...

  9. 【VSC】我安装了哪些扩展插件

    Nodejs gitk  ——  版本实时比对 Debugger for Chrome ——  让 vscode 映射 chrome 的 debug功能,静态页面都可以用 vscode 来打断点调试. ...

  10. iOS 判断两个颜色是否相同

    今天做项目的时候,遇到一个小问题,就是获取UIButton的背景颜色用来和已知颜色做对比,进行点击事件.去查了下文档,有个方法正好可以处理这个问题. bool CGColorEqualToColor ...