变量

系统常用变量

#!/bin/bash
echo "默认shell: $SHELL"
echo "当前用户家目录: $HOME"
echo "内部字段分隔符: $IFS"
echo "默认语言: $LANG"
echo "默认可执行程序路径: $PATH"
echo "当前目录: $PWD"
echo "当前用户ID: $UID"
echo "当前用户: $USER"
echo "历史命令大小: $HISTSIZE"
echo "随机生成一个0-32767的整数: $RANDOM"
echo "主机名称: $HOSTNAME" #扩展知识
#修改历史命令记录条数大小
vim /etc/profile
HISTSIZE=10000
source /etc/profile

普通变量和临时环境变量

#变量等号两边不建议空格,不然会出问题
#普通变量定义 VAR=value
#临时环境变量定义 export VAR=value #区别
#在当前shell进程中定义的环境变量,其作用域是当前的shell进程
#当用 export 命令导入到系统环境变量时,则作用域是shell进程以及shell的子进程

不使用export定义变量

使用export定义变量

注意:在执行脚本的时候,会在当前终端会生成一个子shell去执行脚本的命令,而不会直接去执行系统命令

位置变量

位置变量是指的shell脚本或者函数后面跟的 $n 变量

$n 取值范围 $1 $2 $3 ... $9, 从第10个开始需要使用花括号调用 ${10}

shift 命令
执行一次shift命令,位置变量个数就会减一,而变量值会提前一位
也可以理解丢弃当前位置的变量

shift n 可移动n位

特殊变量

$0  脚本自身名字
$? 上一条命令返回的状态码,0为成功,非0则执行失败
$# 位置参数总数
$* 所有的位置参数被看做成一个字符串
$@ 所有的位置参数被看做成独立的字符串
$$ 当前进程PID
$! 上一条后台运行的进程的PID

变量的引用

=	  变量赋值
+= 两个变量相加(相当于字符串拼接)
在Shell中所有的变量默认都是字符串型

单引号、双引号、反撇号

`......`
反撇号等效于 $(......),相当于先执行命令,在把命令返回结果赋值

单引号和双引号之间的差别
单引号会忽略特殊字符 双引号会解释特殊字符原有的意义 如 $ 、! 等

Shell-01-变量的更多相关文章

  1. shell之变量与read

    环境变量 set 环境变量可供shell以外的程序使用 shell变量 env shell变量仅供shell内部使用 set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell ...

  2. shell与变量的声明的操作

    1.给命令起别名:alias 执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息: 还可以用一个别名表示几个命令 的结合: 2.ps:显示当前登录会话的所有活动进程: 3.更 ...

  3. 【Linux】之shell特殊变量整理

    目录 1. 特殊变量列表 2. 特殊说明 在shell中变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即p ...

  4. (转载)shell变量基础—shell自定义变量

    (转载)http://see.xidian.edu.cn/cpp/html/1494.html 一.Shell定义变量需要遵循的规则 Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下 ...

  5. shell基础——变量定义

    快速参考: 变量定义格式: 变量名=值 str1="hello world" # define a string var str2=hello # define a string ...

  6. shell的变量处理

    shell的变量处理 一.删除 删除(删除某一段) # 从前向后删除 % 从后向前删除 删除(删除某一部分) $(var:nu1:nu2) nu1表示开始位置 nu2表示删除长度 示例如下 file= ...

  7. shell 环境变量的相关配置文件和配置方法

    shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...

  8. Linux编程 12 (默认shell环境变量, PATH变量重要讲解)

    一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash  shell支持的Bourne变量 Bo ...

  9. shell模板变量替换

    我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可以做到. 先 ...

  10. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

随机推荐

  1. acwing 4 多重背包问题 I

    多重背包 有 n种物品 一共有 m大小的背包,每种物品的价值 大小 个数 为 s[i],v[i],num[i]; #include<bits/stdc++.h>//cmhao #defin ...

  2. margin属性总结,你想知道的这里都有

    一.前言 在学习CSS时,遇到的很多问题都是和margin有关,这个小怪兽总是出其不意的让我的界面排版变的混乱,还让人摸不着头脑,原因还是在于我对他的一些属性没有进行一个深入的了解,导致我在设计之初就 ...

  3. 在web.xml正确加载spring配置文件的方式

    ssm框架整合时一直报出没有创建实例bean的错误,一直以为是代码原因,反复测试了很久,才找到原因是spring配置文件没有正确导入,下图是我的错误示例 web.xml加载spring配置文件的方式主 ...

  4. uni-app app端 人脸识别

    在听到人脸识别,哇塞!感觉来个个高大上的,去阿里 腾讯 看他们的人脸识别方法,官方sdk什么的. 到后来,需求确定了,拍照(照片)上传,后台去识别是不是本人,这一瞬间从天堂到地狱,放着官方那么好的方法 ...

  5. WSL中使用systemctl报错问题

    Windows10里面自带的wsl中安装docker后不支持systemctl命令.需要更换命令,用Sysvinit的命令代替systemd,命令如下: Systemd command Sysvini ...

  6. c语言的自动类型转换(转)

    一.自动转换遵循以下规则: 若参与运算量的类型不同,则先转换成同一类型,然后进行运算. 转换按数据长度增加的方向进行,以保证精度不降低.如int型和long型运算时,先把int量转成long型后再进行 ...

  7. Java on Visual Studio Code的更新 – 2021年6月

    Nick Zhu from Microsoft VS Code Java Team 大家好,欢迎来到 Visual Studio Code Java 更新的特别年中版.作为这篇文章的重点,我们将看看接 ...

  8. Linux常用命令 day day up

    一.Shell二.Linux命令的分类1.查看内部命令2.禁用内部命令三.Linux命令行格式四.编辑Linux命令行的辅助操作五.获得命令帮助的方法1.pwd--查看当前的工作目录2.cd--切换工 ...

  9. commons-collections利用链学习总结

    目录 1 基础 ConstantTransformer InvokeTransformer ChainedTransformer LazyMap TiedMapEntry TransformingCo ...

  10. java02实验:方法

    一:素数输出 1.实验要求: (1)编写判断该数是否为素数的方法,并在主方法中对其进行调用. (2)注意编程规范:程序开头部分的目的,作者以及日期:必要的空格与缩进,适当的注释等: (3)实验报告中要 ...