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

shell 特殊符号用法

发布时间:2020-12-15 20:08:17 所属栏目:安全 来源:网络整理
导读:1. 特殊变量: 0 , #, ? , @, ? , $和命令行参数 $0 当前脚本的文件名 $# 传递给脚本或者函数的参数个数 $n 传递给脚本或者函数的参数。 $1 代表第一个参数、 $2 代表第二个参数 $* 传递给脚本或者函数的所有参数 $@ 传递给脚本或函数的所有参数。被双引号(

1. 特殊变量: 0, #, ?, @, ?, $和命令行参数

$0  当前脚本的文件名
$#  传递给脚本或者函数的参数个数
$n  传递给脚本或者函数的参数。$1代表第一个参数、$2代表第二个参数
$*  传递给脚本或者函数的所有参数
$@  传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。  
$?  上个命令的退出状态,或函数的返回值。一般情况下,大部分命令执行成功会返回 0,失败返回 1$$  当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

2. ? @ 的区别

? @ 都表示传递给函数或脚本的所有参数,不被双引号(” “)包含时,都以” 1"" 2” … “ n() *" 会将所有的参数作为一个整体,以" 1 2 … n @" 会将各个参数分开,以" 1 2" … "$n” 的形式输出所有参数。

#!/bin/bash 
echo "$*=" $*  
echo ""$*"=" "$*"  
echo "$@=" $@  
echo ""$@"=" "$@"  
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  

执行 ./test.sh "a" "b" "c",看到下面的结果:  
$*=  a b c 
"$*"= a b c 
$@=  a b c 
"$@"= a b c 
print each param from $*  
a  
b  
c  
print each param from $@  
a  
b  
c  
print each param from "$*"  
a b c
print each param from "$@"  
a  
b  
c
说明:双引号包含时,"$*"的参数被当做一个整体,而"$@"还是遍历每一个参数

3. ${}、##和%%使用范例

file="/dir1/dir2/dir3/my.file.txt"

${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
${file##*.}:删掉最后一个 . 及其左边的字符串:txt
${file%/*}:删掉最后一个 /  及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 / 及其右边的字符串:(空值) ${file%.*}:删掉最后一个  .  及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my ${file:0:5}:提取最左边的 5 个字节:/dir1 ${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2 ${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt ${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt ${#file} 可得到 27 ,因为/dir1/dir2/dir3/my.file.txt 是27个字节

(编辑:李大同)

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

    推荐文章
      热点阅读