@

shell编程的建立

[root@localhost ~]# vi mytest

就建立了一个名叫mytest的文件

vim编辑器没有接触过,你就需要学习一下啊,这里介绍几个简单的命令:

  • 单点I进入插入模式
  • Ctrl+c退出插入模式
  • 在浏览模式按下“:”,再输入q是不保存退出、wq是保存并退出

shell的hello world!

echo 你想要输出的内容



执行脚本的方法:

sh 你创建的shell脚本的名字
bash 你创建的shell脚本的名字

打开一个子shell去读取,不需要有执行权限

或者

source 你创建的shell脚本的名字

区别:在当前shell内执行、且不需要有执行权限,source可以替换成.

. 你创建的shell脚本的名字

或者

./你创建的shell脚本的名字

打开一个子shell,但是需要有执行权限

Shell的环境变量

相当于window系统下的环境变量

环境变量 说明
PATH 指定命令的搜索路径,以冒号为分隔符
HOME 指定用户的主工作目录
HISTSIZE 命令历史文件
LOGNAME 当前的登录名
HOSTNAME 主机的名称
SHELL shell的全路径名
TERM 用户控制终端的类型
PWD 当前工作目录的全称
PS1 命令基本提示符,root用户是“#”,对于普通用户是“"$"

环境变量一般都大写,系统启动以后自动加载,可写的环境变量用户可以随时修改

使用和设置环境变量

命令 说明
echo 显示某个环境变量值
export 设置一个新的环境变量
env 显示所有环境变量
set 显示本地定义的Shell变量
unset 消除环境变量
readonly 设置只读环境变量

如图设置PI环境变量为3.1415926



env命令查看



Shell的系统变量

Shell的系统变量主要在对参数和命令返回值进行判断时使用,包括脚本和函数的参数,以及脚本和函数的返回值。

常用系统变量

系统变量 说明
$0 Shell程序名
$1-$9 第1~9个命令行参数的值
$* 传递给脚本的所有参数,全部参数合为一个字符串
$ # 传递给脚本的参数个数
$ $ 当前进程的ID
$ ? 最后执行一条命令的退出状态,返回值为0则成功,非0则失败
$ ! 在后台运行最后一个进程的ID

命令行参数的个数大于9的个时,可以使用shift指令将参数左移,获取第10个以后的参数。也可以用shift n将所有参数一次性左移n位



用户自定义变量

用户自定义变量在Shell脚本中使用,他们拥有临时的存储空间。在程序执行中值可以改变,这些变量可以设置为只读。

在程序中使用变量值的时候,要在变量名前面加一个字符“$"。这个符号告诉Shell要取出变量的值(”==“两边不能有空格)

上图输出加了$的值为这个变量的值,不加就直接输出了字符串

当复制给变量含有空格、制表符、或者换行符时,要用双引号把这个字符串引起来

当然赋值也可以像下图所示:

linux学习(七)Shell编程中的变量的更多相关文章

  1. Linux学习之Shell编程基础

    转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...

  2. linux学习总结----shell编程

    ## 环境变量 ## 全局变量 ``` 常见的全局环境变量 PATH 指令的搜索路径 HOME 用户的家目录 LOGNAME 登录名 SHELL 脚本的类型 使用全局环境变量 echo $PATH 自 ...

  3. linux学习18 shell脚本基础-bash变量和逻辑运行

    一.回顾 1.用户管理,权限管理,install,mktemp 2.用户管理: 3.权限管理: mode,ownership mode: user group other r w x 4.命令:ins ...

  4. Shell编程中的变量作用域

    有两个shell脚本文件: a.sh name=Tom echo $name ./b.sh b.sh echo "name in b.sh:"$name 运行./a.sh时输出结果 ...

  5. (七)shell编程学习

    1.shell程序练习:创建一个dir文件夹,在dir文件夹里再创建一个cd.c文件 首先vim hello.sh 2.shell中的变量定义和引用 (1)变量定义和初始化.shell是弱类型语言(语 ...

  6. shell中的输入输出和编程中的变量(shell 03)

    shell中的输入输出标准输入:键盘标准输出:终端显示器>> 追加是换行追加的echo -n 不尾随换行符 -e 启用解释反斜杠的转义功能 -E 禁用解释反斜杠的转义功能(默认) --he ...

  7. shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/ ...

  8. 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    [转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...

  9. Linux学习——shell编程之环境变量配置文件

    小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...

随机推荐

  1. distcc 的使用

    在项目的开发过程中,经常出现多个开发人员集中在某个 linux 内网开发机上统一开发的情况,随着开发人员越来越多.项目编译得越来越频繁,开发机的压力越来越大,所以考虑用代码交叉编译的方式来缓解开发机的 ...

  2. 元类, pymysql

    元类, pymysql 一.元类 自定义元类 ''' 1.什么是元类? - 类的类就是type,其实type就是元类 2.元类的作用? 3.如何创建元类以及使用? ''' # # 1.一切皆对象 # ...

  3. MyBatis结果集一对多映射

    MyBatis结果集一对多映射 需求:重画二维码配置类,根据sizeCode将查询出来的imageCode分组. DROP TABLE IF EXISTS `size_code`; CREATE TA ...

  4. 使用ul和li进行图片的布局

    使用ul和li进行浮动布局(自适应) 1 图片上下两排: 首先盒子的宽度要给100% ul包裹一个div,首先量好盒子的宽和高,并进行设置, margin 0 auto 盒子居中显示 每个li向左浮动 ...

  5. [转]UIpath advanced certification dumps

    本文转自:https://dotnetbasic.com/2019/06/uipath-advanced-certification-dumps.html UiPath advanced certif ...

  6. 文本切换器(TextSwitcher)的功能与用法

    TextSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件时使用动画效果.与ImageSwitcher相似的是,使用TextSwit ...

  7. 一图了解 CODING 2.0:企业级持续交付解决方案

    近日,CODING 在 KubeCon 2019 上海站上正式推出了 DevOps 的一站式解决方案:CODING 2.0. CODING 2.0 进行了产品.产品理念.功能.首页的升级,对用户服务进 ...

  8. CentOS7 安装Python3.6.8

    CentOS7 安装Python3.6.8 1. 安装依赖环境 yum -y groupinstall "Development tools" yum -y install zli ...

  9. 千万级数据迁移工具DataX实践和geom类型扩展

    ## DataX快速入门参考 > 官方https://github.com/alibaba/DataX/blob/master/userGuid.md ## 环境要求 > Linux JD ...

  10. MASMPlus连接出错:error LNK2001: unresolved external symbol _WinMainCRTStartup

    坑:汇编语言第三版使用的是masm5.0,网上找到了一个masm32,一看名字,不就是masm的32位版本吗.然也..这是另外一个软件 MASM32并非是指Microsoft的MASM宏汇编器.MAS ...