shell编程之BASH变量(2)
变量命名规范
在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)的更多相关文章
- shell编程之awk命令详解
shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...
- 03 shell编程之case语句与函数
本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...
- shell编程之if语句
shell编程之if判断 目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other 1.整数比较 -eq 等于,如:if [ "$ ...
- shell编程之case分支语句
shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 ...
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- shell编程之helloworld
/bin/sh与/bin/bash的区别sh:如果前面有语句报错,则报错语句后面的命令不执行bash:如果前面有语句报错,后面的命令也会执行sh跟bash的区别,实际上就是bash有没有开启posix ...
- linux学习18 shell脚本基础-bash变量和逻辑运行
一.回顾 1.用户管理,权限管理,install,mktemp 2.用户管理: 3.权限管理: mode,ownership mode: user group other r w x 4.命令:ins ...
- shell编程之export
shell 与 export命令用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本 ...
- Linux学习笔记(16)shell基础之Bash变量
1. 用户自定义变量 (1)变量设置规则 ① 变量名称可由字母.数字和下划线组成,但不能以数字开头: ② 变量的默认类型为字符串类型,如果要对数值运算,则必须指定变量类型为数值型: ③ 变量用等号连接 ...
随机推荐
- Flume介绍
Flume介绍 http://flume.apache.org/FlumeUserGuide.html 一.Flume架构图 含义 Source 规定收集数据的来源 Channel 相当于一个管道,连 ...
- Eclipse配置maven环境
一.什么是maven? Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个 ...
- Git学习(2)-使用Git 代码将本地文件提交到 GitHub
上次随笔写到git的安装和运用命令窗口创建本地版本库,这次主要讲一下用git代码将本地文件提交到GitHub上. 前提是有一个GitHub账号. 1.创建一个新的版本库,进入到你本地项目的根目录下(我 ...
- h5开发安卓软键盘遮挡解决方案
//处理input focus时被键盘遮挡问题 inputFocus:function(){ if(/Android [4-6]/.test(navigator.appVersion)) { wind ...
- Hive总结(七)Hive四种数据导入方式
- mybatis_SQL映射(4)鉴别器
摘录自:http://blog.csdn.net/y172158950/article/details/17505739 鉴别器:有时一个单独的数据库查询也许返回很多不同(但是希望有些关联)数据类型的 ...
- Hyperledger Fabric Transaction Flow——事务处理流程
Transaction Flow 本文概述了在标准资产交换过程中发生的事务机制.这个场景包括两个客户,A和B,他们在购买和销售萝卜(产品).他们每个人在网络上都有一个peer,通过这个网络,他们发送自 ...
- IOS 使用 ZbarSDK 二维码扫描
1. 下载SDK https://github.com/bmorton/ZBarSDK 2. 引用到项目中 3. 添加引用 4. AppDelegate中添加下面代码 5. 在需要使用扫描的con ...
- 【转】查询SQLSERVER执行过的SQL记录
--创建时间 QS.creation_time, --查询语句 ), (( THEN DATALENGTH(st.text) ) ) AS statement_text, --执行文本 ST.text ...
- Android studio登录界面
打开Android studio,你需要建立两个类LoginMainAcitivity.java和SuccessMainActivity.java,和与之相对应的xml布局文件login_main.x ...