这是显示问题的代码:
#!/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。我的问题有点类似于这个。但似乎大多数解决方案都不适合我。我认为 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'.
唯一有效的“hack”是echo "$1"。但我有一种感觉,这不是最好的做法。
PS我个人觉得这很有趣。感谢您对此的任何想法。