我刚看到bash中的一些代码,我不太明白.作为新手bash脚本,我不知道发生了什么.
echo ${0##/*}
echo ${0}
Run Code Online (Sandbox Code Playgroud)
我没有看到这两个命令的输出有什么不同(打印脚本名称).这#只是一个评论吗?什么是/*.如果是评论,为什么它不会干扰关闭}括号?
谁能让我对这种语法有所了解?
请解释以下语法:
i##*.
i%.*
Run Code Online (Sandbox Code Playgroud)
我明白它在做什么,但我想知道一般模式(为什么/如何这样做)。
它出现的代码:
#!/bin/bash
recursive_name_change()
{
cd "$1"
for i in *
do
#echo "${i##*.}"
if [ -d "$i" ]
then
recursive_name_change "$i"
elif [ "${i##*.}" = "cpp" ]
then
new_name=${i%.*}".c"
mv "$i" "$new_name"
fi
done
cd ../
}
recursive_name_change .
Run Code Online (Sandbox Code Playgroud)
有人还请建议,我可以从哪里找到这些特殊的语法形式?