如何解决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 举报,一经查实,本站将立刻删除。