只是试图更好地理解为什么下面的第二项不起作用。第一项很简单,第二项似乎更清晰,第三项似乎不直观。

# My path includes pscp so this works.
pscp.exe -i $PRIVATE_KEY $file ${PROXY_USER}@${PROXY_HOST}:${PROXY_DIR}

# This does not work. I get unexpected token error. Why? What does that mean?
$PUTTY_PATH\pscp.exe -i $PRIVATE_KEY $file ${PROXY_USER}@${PROXY_HOST}:${PROXY_DIR}

# & is required to solve the problem.
& "$PUTTY_PATH\pscp.exe" -i $PRIVATE_KEY $file ${PROXY_USER}@${PROXY_HOST}:${PROXY_DIR}

最佳答案

这是因为这也被视为解析错误:

"foo"\pscp.exe

而正如您所发现的,这可以正确解析:
"$PUTTY_PATH\pscp.exe"

解析为有效的字符串,但是正如您已经注意到的,字符串不执行。您必须使用调用运算符&来调用由后面的字符串命名的命令。

10-04 12:09