码迷,mamicode.com
首页 > 系统相关 > 详细

三、Shell变量类型和运算符

时间:2016-06-03 22:53:51      阅读:376      评论:0      收藏:0      [点我收藏+]

标签:

一、Shell变量的应用
1、Shell变量的种类
    ·用户自定义变量:由用户自己定义、修改和使用
    ·预定义变量:Bash预定义的特殊变量,不能直接修改
    ·位置变量:通过命令行给程序传递执行参数
2、变量的赋值与引用
    ·定义新的变量
            变量名要以英文字母或下划线开头,区分大小写
            格式:变量名=变量值
   · 查看变量的值
            格式:echo $变量名
        echo  "my name is $name"
        echo  "my name is ${name}bd"
 
     ·从键盘输入内容为变量赋值
            格式: read [-p "信息"] 变量名
     ·结合不同的引号为变量赋值
            双引号“”:允许通过$符号引用其他变量值
            单引号‘’:禁止引用其他变量值,$视为普通字符
            反撇号··:将命令执行的结果输出给变量
    注意:默认单、双引号里都不能解析转义字符(如/n)的
例子A:
[root@Salve]# cat demo.sh
#!/bin/bash
read -p "enter you name:" name
echo "my name is $name"
 
[root@Salve]#./demo.sh
enter you name:Tom
my name is Tom
例子B:
[root@Salve]# cat demo.sh
#!/bin/bash
read -p "enter you name:" name
echo my name is $name
 
[root@Salve]# sh demo.sh
enter you name:user44
my name is $name
例子C:
[root@Salve]# cat demo.sh
#!/bin/bash
read -p "enter you name:" name
echo my name is $name
 
[root@Salve]#./demo.sh
enter you name:user55
my name is user55
例子D:
[root@Salve]# cat demo.sh
#!/bin/bash
read -p "enter you name:" name
echo $name /n $name /n $name
echo "$name /n $name /n $name"
 
[root@Salve]# sh demo.sh
enter you name:user
$name /n $name /n $name
user /n user /n user
例子E:
[root@Salve scripts]# cat test.sh
#!/bin/bash
str1=`echo 123`
str2=`date`
echo $str1;
echo "today is: $str2";
echo "today is: $str2!!!";
[root@Salve scripts]#./test.sh
123
today is:2016年05月24日星期二21:30:17 CST
today is: 2016年 05月 24日 星期二 21:30:17 CST!!!
 
vim编辑文件小技巧:
ESC键后
    :set nu可以设置显示行号;
    :set nonu可以设置行号消失
 
3、删除变量
    ·清除用户定义的变量
            格式:unset    变量名
例子:
[root@Salve]# cat test.sh
#!/bin/bash
#test.sh
name=user123
echo $name
 
unset name
echo $name
[root@Salve]# sh test.sh
user123
    注意:第二行为空
 
5、位置变量
    ·表示为$n,n为1~9之间的数字
技术分享
[root@Salve scripts]# cat demo.sh
#!/bin/bash
 
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
echo $7
echo $8
echo $9
echo $10
[root@Salve scripts]#./demo.sh a b c d e f g h i j
a
b
c
d
e
f
g
h
i
a0
 
例子:
[root@Salve scripts]# cat demo.sh
#!/bin/bash
 
case $1 in
start)
echo start...
;;
stop)
echo stop...
;;
esac
[root@Salve scripts]#./demo.sh start
start...
[root@Salve scripts]#./demo.sh stop
stop...
4、预定义变量
    ·表示形式如下:
            $#:命令行中位置参数的个数
            $*:所有位置参数的内容
            $?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错
            $0:当前执行的进程/程序名
例子A:$0显示当前脚本的名称
[root@Salve scripts]# cat a.sh
#!/bin/bash
echo "当前您正在执行的脚本名称是:"$0
echo $0
echo $0
[root@Salve scripts]#./a.sh
当前您正在执行的脚本名称是:./a.sh
./a.sh
./a.sh
例子B:
[root@Salve scripts]# cat a.sh
#!/bin/bash
echo "总共有${#}个参数"
echo "参数的内容是:$*"
[root@Salve scripts]#./a.sh a b c d e f g h i j k l m n o p q
总共有17个参数
参数的内容是:a b c d e f g h i j k l m n o p q

例子C:

[root@Salve scripts]# cat b.sh
#!/bin/bash
 
for i in$*;do
    echo $i
done
[root@Salve scripts]#./b.sh a b c
a
b
c
例子D:
[root@Salve scripts]# cat test.sh
#!/bin/bash
tot=0
for i in $*;do
    tot=$(($tot+$i))
done
echo $tot
 
[root@Salve scripts]#./test.sh 12345
15
例子E:
[root@Salve scripts]# cat temp.sh
#!/bin/bash 
ls -l
echo $?
 
[root@Salve scripts]#./temp.sh
总用量8
-rwxr-xr-x.1 root root 285月2414:31 temp.sh
-rwxr-xr-x.1 root root 695月2414:27 test.sh
0
例子F:
[root@Salve scripts]# cat temp.sh
#!/bin/bash
#ll
ls
 
if[[$?==0]];then
    echo 上一条命令执行成功
else
    echo 上一条命令执行失败
fi
[root@Salve scripts]#./temp.sh
temp.sh test.sh
上一条命令执行成功
 
6、计算整数表达式的运算结果
    格式:expr 变量1 运算符 变量2 ...[运算符 变量n]
expr的常用运算符(现在较少用,用简单的方法)
        加法运算:+
        减法运算:-
        乘法运算:\*
        除法运算:/
        求模(取余)运算:%

[root@Salve scripts]# cat a.sh
#!/bin/bash
 
expr 10+20
expr $1 + $2
num=`expr 1+2`
echo $num
 
[root@Salve scripts]#./a.sh 1155
30
66
3
现在更常用的是如下方法:
[root@Salve scripts]# cat a.sh
#!/bin/bash
 
num1=$((4+2))
num2=$((4-2))
num3=$((4*2))
num4=$((4/2))
num5=$((4%2))
echo $num1
echo $num2
echo $num3
echo $num4
echo $num5
[root@Salve scripts]#./a.sh
6
2
8
2
0

 

三、Shell变量类型和运算符

标签:

原文地址:http://www.cnblogs.com/chinas/p/5557741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!