变量

主要有本地变量,环境变量,局部变量,位置变量,只读变量,特殊变量

1.本地变量:该类变量的作用范围仅限于当前shell进程,在其他shell进程包括其子或父进程均无效

该类变量赋值方式:

1)直接赋值varName=value的形式

2)变量引用赋值varName="$varName"或varName=${varName}形式

3)命令引用赋值varName=`command`或varName=$(command)的形式

4)几种特殊符号的说明:

1>单引号''表示强引用保留引号中的内容不会因为引用变量而改变

2>双引号""表示弱引用内容会因引用变量而发生改变

3>反斜线\转义单个字符

4>反引号``表示将内容作为命令执行

2.环境变量:该类变量的作用范围仅限于当前shell进程及其子shell进程

1)声明方式:export varName=value或declare -x varName=value

2)显示环境变量:env,printenv,export三个命令都会显示而set命令会显示所有已定义的变量

3)销毁变量:unset varName

3.只读变量:一旦声名不可改变即常量constant

声名方式:readonly varName=value或declare -r varName=value

4.特殊变量:

$?表示最近的一次命令的执行状态码

$0表示命令本身的名字

$#表示传递参数的个数

$*传递的所有参数,以字符串的形式

$@传递的所有参数,以单个字符的形式

5.位置变量:指明第几个参数$1,$2,$3,...并且支持换岗操作shift [n]命令

1 #!/bin/bash2# Author:wang3 # Version:0.0.01

4# Description:测试脚本5 # CreateTime:2019/05/13

6 echo "\$#--所有参数的个数$#"

7 echo "\$*--所有参数$*"

8 echo "\$@--所有参数$@"

9 echo "\$0--命令本身$0"

10 echo "\$?--命令执行状态码$?"

11 echo "\$1--第1个参数$1"

12 echo "\$2--所有参数$2"

换岗

#!/bin/bash2# Author:wang3 # Version:0.0.01

4# Description:Test5 # CreateTime:2019/05/13

6 echo "\$#--所有参数的个数$#"

7 echo "\$*--所有参数$*"

8 echo "\$@--所有参数$@"

9 echo "\$0--命令本身$0"

10 echo "\$?--命令执行状态码$?"

11 echo "\$1--第1个参数$1"

12 shift 1

13 echo $1

执行后发现shift 1其实就是将第二个参数的值移到第一个参数的位置

配置文件

1.按范围来分有全局配置文件和个人配置文件

1)全局配置文件:/etc/profile  /etc/profile.d/*.sh  /etc/bashrc

2)个人配置文件:~/.bash_profile  ~/.bashrc

2.按功能分为profile类和bashrc类

1)profile类:为交互式登录shell进程提供配置,主要是定义环境变量,执行脚本

交互式登录shell(直接通过终端输入账号密码或su - username)的读取次序:/etc/profile-->/etc/profile.d/*.sh-->~/bash_profile-->~/.bashrc-->/etc/bashrc

2)bashrc类:为非交互式登录shell进程提供配置

非交互式登录shell(su username或图形界面下打开的终端或执行脚本)的读取次序:~/.bashrc-->/etc/bashrc-->~/bash_profile-->/etc/profile.d/*.sh-->/etc/profile

linux bash 局部变量赋值,linux之bash的基础特性(四)变量,配置文件及env,printenv,export,declare,set,unset,readonly简单命令...相关推荐

  1. linux shell sql赋值,Linux下shell执行SQL

    mysql -P 端口号 -u用户名 -p密码 -e"use数据库名;待执行的sql语句;" 取消用户密码有效期,关闭修改密码 /usr/local/u-mail/service/ ...

  2. linux快捷键 赋值,2_Shell语言———bash的快捷键、变量声明、引用变量及变量替换...

    一.初识bash Bash是一种解释型语言,但它也提供了交互式接口,支持变量,因此提供了编程环境,所以可以称bash为程序语言. 解释型语言属于弱类型语言,其特点为: 1.它不强制区分变量类型,即无论 ...

  3. linux 终端 画圆,Linux Bash Shell快速入门

    BASH的基本语法 ·最简单的例子-- Hello World! ·关于输入.输出和错误输出 ·BASH中对变量的规定(与C语言的异同) ·BASH中的基本流程控制语法 ·函数的使用 2.1最简单的例 ...

  4. Linux 之旅 8:初识 BASH

    Linux 之旅 8:初识 BASH 认识 BASH 这个 Shell 我们作为用户,并不能和Linux kernel直接交互,而是需要通过一个壳程序(shell)与其交互,而Bash就是最流行的一种 ...

  5. Linux bash 的基础特性

    Linux bash 基础特性 bash基础特性之一:命令历史 bash基础特性之二:命令或路径补全 bash基础特性之三:命令行展开 bash基础特性之四:命令的执行状态结果 bash基础特性之五: ...

  6. linux文件系统及bash基础特性

    linux文件系统 一.根文件系统 linux被识别的第一个被称为根之间关联的文件系统叫做根文件系统(rootfs),其他分区要想被读到,需要挂载到根目录的某个挂载点(根的子目录)上.根文件系统至关重 ...

  7. 每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)

    文章目录 - Linux的文件系统 - LSB - FHS - 根文件系统 - 对根文件系统下目录的概述: /boot /bin /sbin /lib /lib64 /etc /home /root ...

  8. 红叶李之Linux bash 基础特性

    Linux系统管理之bash基础特性 1.补全 系统支持的shell: # cat /etc/shells当前系统默认shell:# echo $SHELL命令补全:给定的打头的字符串如果在系统中能够 ...

  9. ksh和bash区别、linux更改用户的默认登陆shell

    文章目录 ksh和bash区别 bash ksh linux更改用户的默认登陆shell 参考 ksh和bash区别 ksh在unix上使用较多.比如hpux,AIX. bash在linux上使用较多 ...

最新文章

  1. 北航学长:DCIC 2021的算法方案讲解
  2. 如何动态添加菜单/菜单项、子菜单、右键菜单
  3. 服务器共享文件夹 关闭打开文件,dos命令net file图文教程,显示打开共享文件名关闭删除文件锁...
  4. POJ-1724 深搜剪枝
  5. Python零碎知识(6):split 和 join
  6. java基础提升篇:深入浅出Java多线程
  7. vue实现时间选择器,精确到秒
  8. java加入md5_javamd5加密解密
  9. 数据库创建/删除视图语句
  10. cad查看_CAD手机看图软件中批注的图片在电脑上如何查看?
  11. html怎么链接scc,htmlscc基础知识
  12. Qcom平台,dump解析环境配置
  13. 王彦霖艾佳妮婚纱大片,校园牵手漫步,女方秀心形婚戒
  14. 常用moment时间总结
  15. 软件测试工程师面试的时候该怎么样介绍自己?你的简历是不是该优化了
  16. hids Elastic Security 系列1-Elastic Security介绍
  17. docker安装es+mac安装Kibana工具+es查询语法笔记
  18. 自学渗透第四天--中国菜刀
  19. windows如何使用rclone挂载自建云盘
  20. html中鱼眼效果,Three.js - 鱼眼效果

热门文章

  1. 实现一个bind函数
  2. Splash 占位图适配 全面屏笔记
  3. TFRecords转化和读取
  4. [BZOJ3874/AHOI2014]宅男计划
  5. [BC]Four Inages Strategy(三维空间判断正方形)
  6. 利用WDS实现零接触部署Windows 7 VHD
  7. 开源.net开发平台SharpDevelop挑战VS2008
  8. [转载]迅速成长的两个重要途径
  9. 【网址收藏】operatorhub.io
  10. go get 加 -u 和不加 -u 参数的区别