linux shell编程子bash变量

 

参考视频:https://www.imooc.com/u/279399/courses?sort=publish

https://www.imooc.com/video/6516 慕课网

 

用户的自定义变量:

 

[root@localhost ~]# x=5

[root@localhost ~]# echo $x

5

[root@localhost ~]# y=6

[root@localhost ~]# z=$x+$y

[root@localhost ~]# echo z

z

[root@localhost ~]# echo $z

5+6

变量不会直接进行数值相加

变量的叠加

[root@localhost ~]# x=123

[root@localhost ~]# x="$x"456

[root@localhost ~]# echo $x

123456

[root@localhost ~]#

 

环境变量
环境变量是全局变量

自定义变量是局部变量

将目录/root/sh目录添加到系统环境变量中

[root@localhost ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.7.0_80/bin:/root/bin

[root@localhost ~]# PATH="$PATH":/root/sh

[root@localhost ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.7.0_80/bin:/root/bin:/root/sh

[root@localhost ~]#

[root@localhost ~]# 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_IDENTIFICATION="en_US.UTF-8"

LC_ALL=

[root@localhost ~]# echo $LANG

en_US.UTF-8

[root@localhost ~]#

Linux纯粹的字符界面是不支持中文的。

第三方工具SecureCRT 7.3,可以设定支持UTF-8

 

 

把外部传递的第一个变量赋值给num1

把外部传递的第二个变量赋值给num2

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

 

执行:

[root@localhost home]# ./aa.sh 111 222

333

111传递给num1 ,222传递给num2

$((带上两个小括号表示数值运算的操作

第二个操作案例:

bb.sh

#!/bin/bash
echo $*
echo $@
echo $#

 

[root@localhost home]# ./bb.sh 88 99 00 22 77

88 99 00 22 77

88 99 00 22 77

5

$*和$@都是将产生当成整个返回,但是二者的区别是$*是把输入参数当成一个整体,所以for循环只会循环一次

这里有一个特别需要强调的是使用$*和$@必须使用双引号括起来,不然在使用的时候数值会发生变化

#!/bin/bash
for i in "$@"
do

   echo $i
done

 

[root@localhost home]# ./bb.sh 88 99 00 22 77

88

99

00

22

77

[root@localhost home]# kjdfkjkjfd

-bash: kjdfkjkjfd: command not found

[root@localhost home]# $?

-bash: 127: command not found

返回值是127

[root@localhost home]# echo $$

1106

read -p "please input your name:" -t 10 name
echo $name

 

制定等待的时间是10秒

[root@localhost home]# ./dd.sh

please input your name:ksdfk

ksdfk

 

posted on 2018-07-23 16:30  luzhouxiaoshuai  阅读(150)  评论(0编辑  收藏  举报

导航