shell脚本语言学习笔记-3

定义变量:
变量名命名规则与其他语言相似,但注意!变量名与=之间不能有空格

variableName="name"
myURL="http://www.example.com"
myNum="100"

使用变量:

 your_name="mozhiyan"
 echo $your_name 
 echo ${your_name} #加花括弧用来识别变量的边界

变量可被二次定义,替换第一次的内容
但是如果将该变量定义成只读的话,就不能被二次修改了。

readonly your_name

删除变量:

#!/bin/bash
read your_name
unset your_name
echo "i am ${your_name} !"

运行以上脚本将不会输出name。
这里写图片描述
变量的类型:局部变量–仅在当前shell实例中有效
环境变量–shell可访问可定义
shell变量–有shell程序设置的特殊变量,shell变量中一部分是环境变量一部分是局部变量

特殊变量:

    #!/bin/bash
    echo "File Name: $0"#$0表示当前脚本的文件名
    echo "First Parameter : $1"#$n 传递给脚本或函数的参数
    echo "First Parameter : $2"
    echo "Quoted Values: $@"#传递给脚本或函数的所有参数
    echo "Quoted Values: $*"#传递给脚本或函数的所有参数
    echo "Total Number of Parameters : $#"#传递给脚本或函数的参数个数

$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID即PID的值。
$? 可以获取上一个命令的退出状态。
所谓退出状态,就是上一个命令执行后的返回结果。
一般情况下,成功返回0,失败返回1.
也可用于获得函数返回值。

    #!/bin/bash
    funWithReturn(){
    name="yaorong"
        return $name
    }
    funWithReturn
    # Capture value returnd by last command
    ret=$?#获取上面函数的返回值
    echo "The sum of two numbers is $ret !"

$* 和 $@ 的区别

#!/bin/bash
echo "\$*=" $*
echo "\"\$*\"=" "$*"
echo "\$@=" $@
echo "\"\$@\"=" "$@"

上面脚本输出结果是一样的。
这里写图片描述
但逐个输出的话带引号的结果不一样。

#!/bin/bash
echo "print each param from \$*"
for var in $*
do
    echo "$var"
done
echo "print each param from \$@"
for var in $@
do
    echo "$var"
done
echo "print each param from \"\$*\""
for var in "$*"
do
    echo "$var"
done
echo "print each param from \"\$@\""
for var in "$@"
do
    echo "$var"
done

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值