Cirry's Blog

shell 编程(12)

2016-08-05
linux
5分钟
828字

所见即所为

脚本语言

Bash 变量

什么是变量:

  1. 变量是计算机内存的单元, 其中存放的值可以改变
  2. 将数据段赋给一个简短, 易于记忆的名字

变量命名规则:

  1. 字母下划线开头, 字母数字下划线组成
  2. 长度不超过255个字符
  3. 在有效范围内必须是唯一的
  4. 在Bash中, 变量的默认类型都是字符串型

名字要有含义

变量按存储数据类型分类

  1. 字符串行
  2. 整形
  3. 浮点型
  4. 日期型

变量的分类:

  1. 用户自定义变量
  2. 环境变量:保存的是和操作系统环境相关的数据
  3. 位置参数变量:向脚本中传递参数或数据
  4. 预定义变量

定义变量:

1
x-5 不能加空格
2
name="jiecao"

变量调用:

1
echo $变量名
2
echo $x
3
echo $name

在shell 中所有变量默认为字符串

变量叠加

1
x=123
2
x="$x"456
3
x=${x}456

变量查看

set

选项:

-u:检测变量是否声明后调用,否则报错

变量删除:

unset 变量名

环境变量是全局变量

用户自定义变量是局部变量

pstree 进程树

设置环境变量

export 变量名 = 变量值

查看环境变量

  1. set
  2. env

删除unset

常用环境变量:

  • HOSTNAME:主机名
  • SHELL:当前的shell
  • TERM:终端环境
  • HISTSIZE:历史命令行条数
  • SSH_CLIENT:当前操作环境是用ssh连接,这里记录客户端ip
  • SSH_TTY:ssh连接的终端时pts/1
  • USER:当前登录的用户

PATH环境变量:

PATH变量:胸痛查找命令的路径

echo $PATH

#查看PATH环境变量

PATH:“$PATH”:/root/sh

#增加PATH变量的值

PS1环境变量(操作符) 命令提示符

1
echo $PS1
2
cd /usr/local/su/
3
PS1='[\u@\A] \w]\$'
4
5
ls

当前语系查询

locale

#查询当前系统语系

  • -LANG:定义主语系
  • -LC_ALL:定义整体语系
1
echo $LANG
2
echo $LC_ALL
3
4
locale -a | more
5
6
# 查询系统默认语系(下次开机后的系统语言)
7
cat /etc/sysconfig/i18n

Linux 中文支持

前提条件:正确安装的中文字体和中文语系

纯字符界面中需要第三方插件(zhcon等)

位置参数变量

$n, n为数字, $0为本身, $1-$9为第一到第九个参数, 10以上需要用${10}

1
#!/bin/bash
2
num1=$1
3
num2=$2
4
sum=$(($num1+$num2))
5
echo $sum

chmod 755 文件名

$*把所有参数看成一个整体

$@ 同上, 不过$@把每个参数区分对待

$#所有参数的个数

结果:

1
$* can shu shi 11 22 33 44
2
$@ can shu shi 11 22 33 44
3
$# can shu ge shu 4
4
5
for i in 1 2 3 4
6
do
7
echo $i
8
done

例:$*与$@ 的区别

1
#!/bin/bash
2
for i in "$*"
3
do
4
echo "The parameters is : $i"
5
done
6
7
for y in "$@"
8
do
9
echo "Parameter is : $y"
10
done

预定义变量

  • $?, 最后一次执行命令的返回状态
  • $$, 当前的进程号(PID)
  • $!,后台最后一个程序运行的进程号(PID)
1
echo $$
2
ps aux | grep ip11
3
4
find / -name hello.sh
5
find / -name hello.sh & # (放入后台)

接收键盘输入:

read [选项] [变量名]

选项:

  • -p:“提示信息”:在等待read输入时, 输出提示信息,
  • -t 秒数, read 命令会一直等待用户输入, 使用此选项可以指定等待时间
  • -n 字符数:read命令只接受指定的字符数,就会执行
  • -s:隐藏输入的数据,适用于机密信息的输入

echo -e “\n”

本文标题:shell 编程(12)
文章作者:Cirry
发布时间:2016-08-05
感谢大佬送来的咖啡☕
alipayQRCode
wechatQRCode