变量命名规范

在bash中,变量的默认类型都是字符串型,定义 name = 'kk'

变量分类

  • 用户自定义变量。变量自定义的
  • 环境变量:这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
  • 位置参数变量:这种变量主要是用来向脚本当中传递参数或者数据的,变量名不能自定义,变量作用是固定的
  • 预定义变量:是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

变量调用

echo $变量名
例如
echo $x
echo $name

变量叠加

x = 123
x = "$x"456
x = ${x}789

变量查看

set

设置环境变量

export 变量名 = 变量值

或

变量名 = 变量名
export 变量名

常用环境变量

bash-4.1$ env
HOSTNAME=iZ2zebwk59ftsrtzd05mpzZ 主机名
SHELL=/bin/bash 当前的shell
TERM=xterm 终端环境
HISTSIZE=1000 历史命令条数
SSH_CLIENT=114.247.188.89 14320 60022 当前操作环境使用ssh连接的,这里记录客户端ip
OLDPWD=/home/chenjinxin
SSH_TTY=/dev/pts/0 ssh连接的终端是pts/1
USER=program 当前登录的用户

PATH环境变量

PATH变量:系统查找命令的路径

bash-4.1$ echo $PATH
/usr/local/server/node/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/chenjinxin/bin echo $PATH
#查看PATH环境变量
PATH = "$PATH":/root/sh
#临时添加PATH变量的值

PS1环境变量

PS1变量:命令提示符设置

当前语系查询

locale

查询当前系统语系

bash-4.1$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIF

语系变量LANG

echo $LANG
查看系统当前语系
bash-4.1$ echo $LANG
en_US.UTF-8 locale -a | more
查看linux支持的所有语系

查看系统默认语系

cat /etc/sysconfig/i18n
bash-4.1$ cat /etc/sysconfig/i18n
LANG=en_US.UTF-8
SYSFONT=latarcyrheb-sun16

位置参数变量

位置参数变量 作用
$n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
$* 代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 代表命令行中所有的参数,不过$@把每个参数区分对待
$# 代表命令行中所有参数的个数

例子1

#!/bin/bash

num1 = $1
num2 = $2 sum = $(($num1+$num2)) echo $sum

$*和$@的区别

#!/bin/bash
for i in "$*"
#$*中的所有参数看成一个整体,所以这个for循环只会循环一次
do
echo "$i"
done for y in "$@"
#$@中的每个参数都看成是独立的,所以中几个参数,就会循环几次
do
echo "$y"
echo "\n"
done

预定义变量

预定义变量 作用
$? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则证明上一个命令执行不正确
$$ 当前进程的进程好(PID)
$! 后台运行的最后一个进程的进程好(PID)

接受键盘输入

read [选项][变量名]

  • -p "提示信息": 在等待read输入时,输出提示信息
  • -t 秒数: read命令会一直等待用户输入,使用此选项可以指定等待时间
  • -n 字符数: read命令只接受指定的字符数,就会执行
  • -s 隐藏输入的数据,适用于机密信息的输入
#!/bin/bash
read -p "Enter your name : " name
echo "Hi, $name. Let us be friends!"
#!/bin/bash
read -t 10 -p "Enter the Internet domain name (e.g. nixcraft.com) : "
domain_name
whois $domain_name
#!/bin/bash
read -s -p "Enter Password : " my_password
echo
echo "Your password - $my_password"

shell编程之BASH变量(2)的更多相关文章

  1. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  2. 03 shell编程之case语句与函数

    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...

  3. shell编程之if语句

    shell编程之if判断 目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other 1.整数比较 -eq 等于,如:if [ "$ ...

  4. shell编程之case分支语句

    shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 ...

  5. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  6. shell编程之helloworld

    /bin/sh与/bin/bash的区别sh:如果前面有语句报错,则报错语句后面的命令不执行bash:如果前面有语句报错,后面的命令也会执行sh跟bash的区别,实际上就是bash有没有开启posix ...

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

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

  8. shell编程之export

    shell 与 export命令用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本 ...

  9. Linux学习笔记(16)shell基础之Bash变量

    1. 用户自定义变量 (1)变量设置规则 ① 变量名称可由字母.数字和下划线组成,但不能以数字开头: ② 变量的默认类型为字符串类型,如果要对数值运算,则必须指定变量类型为数值型: ③ 变量用等号连接 ...

随机推荐

  1. 在Android studio模拟器中运行apk文件

    菜鸟级玩家比看文. win平台下下载的apk文件,怎么能模拟运行出来. 首先得安装Android SDK,不会的自行百度一下. 接下来,打开AVD模拟器,自己创建一个模拟器(过程自己实践) 然后,将你 ...

  2. Laravel5.5 的 Homestead 开发环境部署

    首先明白以下几个概念 VirtualBox  -- Oracle 公司的虚拟机软件, 能运行在当前大部分流行的系统上; Vagrant 提供一种命令行接口, 允许自动化安装虚拟机, 并且因为是脚本编写 ...

  3. destoon分页

    <?php //控制分页//分页$pagesize=4;$pagesql="SELECT COUNT(*) AS num FROM `{$DT_PRE}` company"; ...

  4. SSL协议之数据加密过程详解

    前言 总括: 原文博客地址:SSL协议之数据加密过程详解 知乎专栏&&简书专题:前端进击者(知乎)&&前端进击者(简书) 博主博客地址:Damonare的个人博客 生活 ...

  5. JSP之JSTL_functions

    <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java ...

  6. junit4X系列--Exception

    原文出处:http://www.blogjava.net/DLevin/archive/2012/11/02/390684.html.感谢作者的无私分享. 说来惭愧,虽然之前已经看过JUnit的源码了 ...

  7. JS小练习1

    要求: 一.定义"改变颜色"的函数 二.定义"改变宽高"的函数 三.定义"隐藏内容"的函数 四.定义"显示内容"的函数 ...

  8. ADB Shell之手机性能测试

    Connect 夜神模拟器for Android 4.4.2 打开模拟器-在CMD输入如下连接测试设备 adb connect 127.0.0.1:62001 你也可以连接自己的手机设备 开发者选项- ...

  9. ABP官方文档翻译 2.7 对象到对象的映射

    对象到对象的映射 介绍 IObjectMapper接口 AutoMapper集成 安装 创建映射 自动映射属性 自定义映射 MapTo扩展方法 单元测试 预定义映射 LocalizeableStrin ...

  10. Go笔记-流程控制

    [if] if 是用于测试某个条件的语句,如果该条件(逻辑型或布尔型)成立,则会执行大括号内的代码,第一个大括号必须和if 或者else同行,否则非法 // 方式1 if condition { // ...