只是试图更好地理解为什么下面的第二项不起作用。第一项很简单,第二项似乎更清晰,第三项似乎不直观。
# 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"
解析为有效的字符串,但是正如您已经注意到的,字符串不执行。您必须使用调用运算符
&
来调用由后面的字符串命名的命令。