【发布时间】:2019-09-07 20:35:40
【问题描述】:
我正在尝试将值从字符串变量传递到复杂的 bash 命令,但我遇到了问题。当我执行命令时:
files=($(ls abc*))
for file in "${files[@]}"
do
scp $file user@domain.com:~
ssh user@domain.com 'PGPASSWORD="abcd" psql -h domain.com -U user -d dbb -f ~/$file'
ssh user@domain.com 'rm ~/$file'
done
我遇到了一些错误。只有 'scp' 是正确执行的,但它们之后的行会失败。我看到“psql -f 缺少参数”和“找不到文件/无法删除字典” 这段代码有什么问题?如何将字符串值传递给 ssh 命令?
【问题讨论】:
-
单引号不展开变量。
-
我会设置一个 SSH 隧道并在本地运行
psql。