String 获取除bash中最后2个字符以外的字符串的所有字符

String 获取除bash中最后2个字符以外的字符串的所有字符,string,bash,substring,String,Bash,Substring,我想知道如何打印我拥有的字符串,但不使用bash中的最后两个字符。 例如: str = "hello.c" 然后只打印hello 感谢您的回答。答案是使用: str=hello.c echo${str%.c} 要引用文档,请执行以下操作: ${参数%word} ${parameter%%word} 这个词被展开以产生一个模式,就像在filename中一样 膨胀如果模式与展开的 参数的值,则展开的结果是 参数具有“%”大小写或 删除“%”大小写的最长匹配模式。如果参数为“@” 或“*”,模式删除

我想知道如何打印我拥有的字符串,但不使用bash中的最后两个字符。 例如:

str = "hello.c"
然后只打印hello

感谢您的回答。

答案是使用:

str=hello.c echo${str%.c} 要引用文档,请执行以下操作: ${参数%word} ${parameter%%word}

这个词被展开以产生一个模式,就像在filename中一样 膨胀如果模式与展开的 参数的值,则展开的结果是 参数具有“%”大小写或 删除“%”大小写的最长匹配模式。如果参数为“@” 或“*”,模式删除操作将应用于每个位置 参数,展开式是结果列表。如果 参数是一个下标为“@”或“*”的数组变量 阵列移除操作应用于阵列中的每个成员 旋转,展开就是结果列表


引号:echo${str%.c}。否则,如果IFS=l,则将输出he o;或者,在默认的IFS中,如果字符串有一个文本选项卡,您可以将其更改为一个空格,一个由空格包围的glob将替换为当前目录中的一个名称列表,等等。@CharlesDuffy I补充了这一点。也请考虑找到一个比ABS更好的参考-一半的时间我们花在FieNod BASH频道是帮助人们忘掉他们在那里捡到的坏习惯。这是一个很好的来源。另一个是。当然还有一个问题,非常感谢。我在shell脚本中是一个真正的noob。@CharlesDuffy我现在更改了它,引用了官方文档而不是以前的文档。你真的是指除了最后2个,还是除了扩展?如果是hello.cpp,您想要hello还是hello.c呢?链接副本中明确包含了这两种情况。