gpt4 book ai didi

bash - bash 中带有变量、大括号和散列字符的 ${0##...} 语法是什么意思?

转载 作者:行者123 更新时间:2023-11-29 08:41:35 25 4
gpt4 key购买 nike

我刚刚在 bash 中看到了一些我不太理解的代码。作为新手 bash 脚本编写者,我不确定发生了什么。

echo ${0##/*}
echo ${0}

我真的看不出这两个命令的输出有什么不同(打印脚本名称)。 # 只是一条评论吗? /* 有什么用。如果是注释,它怎么不干扰结束 } 大括号?

谁能给我一些关于这个语法的见解?

最佳答案

参见 Substring removal 部分在 parameter expansion page of the bash-hackers' wiki 上:

${PARAMETER#PATTERN} and ${PARAMETER##PATTERN}

This form is to remove the described pattern trying to match it from the beginning of the string. The operator # will try to remove the shortest text matching the pattern, while ## tries to do it with the longest text matching.

Example string (just a quote from a big man):

MYSTRING="Be liberal in what you accept, and conservative in what you send"

Syntax Result
${MYSTRING#*in} Be liberal in what you accept, and conservative in what you send.
${MYSTRING##*in} Be liberal in what you accept, and conservative in what you send.

关于bash - bash 中带有变量、大括号和散列字符的 ${0##...} 语法是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2059794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com