相关疑难解决方法(0)

在bash中带有变量,大括号和哈希字符的$ {0 ## ...}语法是什么意思?

我刚看到bash中的一些代码,我不太明白.作为新手bash脚本,我不知道发生了什么.

echo ${0##/*}
echo ${0}
Run Code Online (Sandbox Code Playgroud)

我没有看到这两个命令的输出有什么不同(打印脚本名称).这#只是一个评论吗?什么是/*.如果是评论,为什么它不会干扰关闭}括号?

谁能让我对这种语法有所了解?

variables syntax bash curly-braces

38
推荐指数
3
解决办法
2万
查看次数

Bash:用字符串操作(百分号)

操纵字符串时,百分号在bash中意味着什么?例如,什么${0%/*}意思?

string parameters bash

33
推荐指数
1
解决办法
2万
查看次数

shell 参数名称后带有磅和百分号的语法

请解释以下语法:

  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)

有人还请建议,我可以从哪里找到这些特殊的语法形式?

linux bash shell

3
推荐指数
1
解决办法
1605
查看次数

标签 统计

bash ×3

curly-braces ×1

linux ×1

parameters ×1

shell ×1

string ×1

syntax ×1

variables ×1