David Brown Asked: 2018-03-22 10:22:18 +0800 CST2018-03-22 10:22:18 +0800 CST 2018-03-22 10:22:18 +0800 CST 为什么子字符串扩展 [ test="-efoo"; echo ${test:0:2} ] 失败? 772 在 Linux Mint 上,使用 bash.. test="-ffoo"; echo ${test:0:2} 输出前两个字符的作品 但 test="-efoo"; echo ${test:0:2} 失败,显然为空输出。 我在想这个的形式是 ${parameter:offset:length} 我知道参数字符不能*@#?-$!0_ 但是$test参数是 - 它的内容肯定可以是任何东西吗?我猜-e是触发了类似贝壳的东西,但为什么.. bash parameter 1 个回答 Voted Best Answer Stephen Kitt 2018-03-22T10:43:11+08:002018-03-22T10:43:11+08:00 当你跑 test="-efoo"; echo ${test:0:2} echo使用参数运行-e,在某些echo实现中,包括echo大多数bash部署的内置命令,它是一个有效选项,因此被“吞下”。 改用printf:_ test="-efoo"; printf %s\\n "${test:0:2}"
当你跑
echo
使用参数运行-e
,在某些echo
实现中,包括echo
大多数bash
部署的内置命令,它是一个有效选项,因此被“吞下”。改用
printf
:_