shell 使用`eval`的zsh函数

o75abkj4  于 2023-03-30  发布在  Shell
关注(0)|答案(1)|浏览(118)

我写了一个Rust程序,它解析MySQL URI字符串并返回(打印)mysql --host={host} --user={user}...。我想在ZSH函数(或别名,或其他)中使用它,这样我就可以执行mysqlu $URI,但还没有能够让它工作。
我试过了

function mysqlu {
    local u=$1
    eval $(mysql-uri-parser $u)
}

以及

alias mysqlu="eval mysql-uri-parser"

第一个给了我no such file or directory: $URI。第二个只是打印命令,这是接近,但没有雪茄。我可以在shell中做$(mysql-uri-parser $URI),它的工作,但仍然比我想要的更多打字。我做错了什么?

brjng4g3

brjng4g31#

@chepner有解决方案:

function mysqlu {
  local u=$1
  eval "$(mysql-uri-parser $u)"
}

相关问题