linux - 为什么 Bash 字符串下标中的空格在这里很重要?

标签 linux bash

我正在尝试 bash 脚本并注意到以下行为:

file="test.jar"
echo "${file: -4}" #prints .jar
echo "${file:-4}"  #prints test.jar

实际上这是非常令人困惑的行为。有人可以解释为什么第二种情况会打印整个 test.jar 吗?

最佳答案

这是由于语法不一致造成的。 {"string":-} 表示默认(所有字符串),无论 - 后面是什么。所以你需要一个空格或括号:

{"string": -4}
{"string":(-4)}

阅读bash string manipulation .

关于linux - 为什么 Bash 字符串下标中的空格在这里很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47715218/

相关文章:

linux - 在Vagrant中使用简单的LAMP的多个虚拟主机

linux - unix - 自动确定字段分隔符和记录(EOL)分隔符?

linux - 最后一个特定字符后的表达式

bash - "here string"和 echo + pipe 有什么区别

linux - 如何运行脚本取决于不同的停止时间

linux - 根据输入视频分辨率使用 ffmpeg 自动调整视频大小

linux - 使用 sudo 的 curl 返回连接被拒绝,但普通 curl 运行良好

c - 使用linux终端时gcc从哪里来?

Linux - Find 命令和 tar 命令失败

linux - 如何在 gcloud linux 命令上自动插入输入