• 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语句中的文件比较

    条件成立,则执行&&后面的内容			# &&
    条件不成立,则执行 || 后面的		# ||
    
  • 相关阅读:
    iOS 获取系统通知开关状态[隐式推送]
    iOS collectionView自适应高度estimatedItemSize
    iOS 审核被拒:2.1 App Tracking Transparency permission request
    大小端
    注解@Mapper(componentModel = "spring")自动生成DTODO的模型映射
    Nexus3_windows部署及Nuget上传
    Winform_打包_CEF
    Nexus3_windows部署及NPM上传
    生成url的二维码图片
    微信小程序实现图片是上传、预览功能
  • 原文地址:https://www.cnblogs.com/xueheng36/p/11717073.html
Copyright © 2020-2023  润新知