加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell变量

发布时间:2020-12-16 01:38:18 所属栏目:安全 来源:网络整理
导读:shell变量 shell预定义变量 #!/bin/bashecho "#当前shell脚本的文件名:$0"echo "#shell脚本的第一个位置参数:$1"echo "#shell脚本的第二个位置参数:$2"echo "#shell脚本的第三个位置参数:$3"echo "#所有传递的位置参数是:$*"echo "#所有传递的位置参数

shell变量

shell预定义变量

#!/bin/bash
echo "#当前shell脚本的文件名:$0"
echo "#shell脚本的第一个位置参数:$1"
echo "#shell脚本的第二个位置参数:$2"
echo "#shell脚本的第三个位置参数:$3"
echo "#所有传递的位置参数是:$*"
echo "#所有传递的位置参数是:[email?protected]"
echo "#总共传递的参数个数是:$#"
echo "#当前shell运行的PID是:$$"
echo "#上一个命令执行的返回结果:$?"     # 结果为0,表示正常,否则异常


$* 和 [email?protected] 的区别:

[[email?protected] tmp]# cat tt.sh 
#!/bin/bash
test() {
    echo "未加引号,二者相同"
    echo $*
    echo [email?protected]

    echo "加上引号后对比"
    echo "------$*------"
        for N in "$*"
        do
            echo $N
        done

    echo "------[email?protected]"
        for N in "[email?protected]"
        do
            echo $N
        done
}
test 11 22 33

结果输出:

[[email?protected] tmp]# ./tt.sh 
未加引号,二者相同
11 22 33
11 22 33
加上引号后对比
------$*------
11 22 33
[email?protected]
11
22
33

总结:

? 不加引号:二者都是返回传入的参数

? 加了引号:$* 把所有参数当做一个字符串整体,[email?protected] 把每一个传入的参数当做一个字符串返回


shell变量替换

[[email?protected] opt]# url=www.baidu.com.cn
[[email?protected] opt]# echo $url
www.baidu.com.cn
[[email?protected] opt]# echo ${url#*.}        # 从头开始匹配,删除匹配到的第一个
baidu.com.cn
[[email?protected] opt]# echo ${url##*.}       # 从头开始匹配,删除匹配到的所有
cn
[[email?protected] opt]# echo ${url%.*}        # 从尾开始匹配,删除匹配到的第一个
www.baidu.com
[[email?protected] opt]# echo ${url%%.*}       # 从尾开始匹配,删除匹配到的所有
www
[[email?protected] opt]# echo ${url/baidu/lol}     # 替换变量,旧的替换为新的,只替换匹配到的第一个
www.lol.com.cn
[[email?protected] opt]# echo ${url//c/C}      # 替换变量,旧的替换为新的,替换匹配到的所有
www.baidu.Com.Cn
[[email?protected] opt]#


if语句中的文件比较

条件成立,则执行&&后面的内容         # &&
条件不成立,则执行 || 后面的        # ||

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读