zoukankan      html  css  js  c++  java
  • shell变量

    shell变量

    shell预定义变量

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

    $* 和 $@ 的区别:

    [root@nginx tmp]# cat tt.sh 
    #!/bin/bash
    test() {
    	echo "未加引号,二者相同"
    	echo $*
    	echo $@
    
    	echo "加上引号后对比"
    	echo "------$*------"
    		for N in "$*"
    		do
    			echo $N
    		done
    
    	echo "------$@------"
    		for N in "$@"
    		do
    			echo $N
    		done
    }
    test 11 22 33
    

    结果输出:

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

    总结:

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

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


    shell变量替换

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

    if语句中的文件比较

    条件成立,则执行&&后面的内容			# &&
    条件不成立,则执行 || 后面的		# ||
    
  • 相关阅读:
    PHP_SELF、 SCRIPT_NAME、 REQUEST_URI 区别
    用canvas画弧形进度条
    sass/scss 和 less的区别
    vue-router 知识点记录
    vue-cli中全局组件的注册使用
    传统项目转前端工程化——路由跳转时出现浏览器锁死和白屏【该死的同步ajax】
    亲身实践 yui-compressor压缩js和css
    vue-webpack 做出来的项目部署到服务器上,点开是空白页(我这里把项目发布到git上)
    git相关
    对象中的方法积累
  • 原文地址:https://www.cnblogs.com/xueheng36/p/11717073.html
Copyright © 2011-2022 走看看