在bash中,如何传递一个以当前目录为默认值的可选参数



我正在尝试定义我的自定义cp函数,它有点像

mycp() {
cp -r "$1" "${2:$PWD}"
}

其中第二个参数是可选的,默认情况下应该是当前路径。但是,当我运行时,当没有第二个参数时,它总是返回"No such file or directory: ''"的错误,当我将.作为第二个自变量传递时,它始终返回bash: 2: <mypath> : syntax error: operand expected (error token is "<mypath>")的错误。我错过了什么?

您可以执行以下操作(缺少的主要内容是"${2:-$PWD}":-中的-:

mycp() {
cp -r "$1" "${2:-$PWD}"
}

最新更新