【发布时间】:2018-01-15 21:56:30
【问题描述】:
这是显示问题的代码:
#!/bin/bash
function char() {
local char="$(echo $1 | cut -c2)" # Gets second character from argument.
echo $char
}
char -a # Outputs 'a'.
char -e # Or 'char -n' outputs nothing.
我希望这段代码输出 [ 'a', 'e' ] 而不是 [ 'a', nothing ]。
我认为问题出在 echo $1 上。我的问题有点类似于one。但似乎大多数解决方案都不适合我。我认为 Bash 从那个问题的版本中改变了它的行为:'3.00.15(1)-release (x86_64-redhat-linux-gnu)'。
我的 Bash 版本是“4.3.30(1)-release (i586-pc-linux-gnu)”。我试过了:
echo x-e # Outputs 'x-e'.
echo -- -e # Outputs '-- -e'.
echo "-e " # Outputs '-e'.
echo "$1" 是唯一有效的“hack”。但我觉得这不是最好的做法。
附: 我个人觉得这很有趣。感谢您对此的任何想法。
【问题讨论】:
标签: string bash unix echo bash4