微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash脚本中的$ {0%/ *}是什么意思?

如何解决bash脚本中的$ {0%/ *}是什么意思?

| 我试图理解一个测试脚本,其中包括以下部分:
SCRIPT_PATH=${0%/*}
if [ \"$0\" != \"$SCRIPT_PATH\" ] && [ \"$SCRIPT_PATH\" != \"\" ]; then 
    cd $SCRIPT_PATH
fi
ѭ1代表什么?谢谢     

解决方法

        它称为
Parameter Expansion
。查看此页面以及该网站的其余部分。
${0%/*}
的作用是,从字符串末尾删除字符串
/*
后缀后,它扩展了参数0(称为脚本的路径)中包含的值。 因此,
$0
${0}
相同,就像其他参数一样。
$1
,您可以写成
${1}
。正如我所说的,“ 5”很特殊,因为它不是一个真实的参数,它始终存在并代表脚本名称。参数扩展在
{
}
(花括号)中起作用,而
%
是参数扩展的一种类型。
%/*
与最后出现的
/
匹配,并删除该字符之后的任何内容(
*
表示任何内容)。看一个简单的例子:
$ var=\"foo/bar/baz\"
$ echo \"$var\"
foo/bar/baz
$ echo \"${var}\"
foo/bar/baz
$ echo \"${var%/*}\"
foo/bar
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。