Syntax error with regex in command alias
本问题已经有最佳答案,请猛点这里访问。
我在UNIX中创建了一个别名,其中正则表达式创建了问题。
我的意图是使用别名作为_enable -input,参数应该用" -"传递。
没有问题所在。
别名是
1 | alias _enable="function _enable() { [[ $1 =~ ^- ]] || { echo "Use hyphen (-) before nodes."; return 1; } ; [[ $# = 1 ]] && { NODE=`echo ${1##*-}`; } || { NODE=""; } ; $HOME/bin/command --command=enable --node=$NODE; }; _enable $1;" |
实际输出是:
1 2 3 | SS-04:~ # _enable 1 -bash: conditional binary operator expected -bash: syntax error near `^-' |
你真的不需要别名和所有引用逃脱。
只需这个功能就足够了:
1 2 3 4 5 | _enable() { [[ $1 == -* ]] || { echo"Use hyphen (-) before nodes."; return 1; } [[ $# -eq 1 ]] && NODE="${1##*-}" || NODE="" $HOME/bin/command --command=enable --node="$NODE" } |
然后你可以打电话:
1 2 3 4 | _enable 1 Use hyphen (-) before nodes. echo $? 1 |