【发布时间】:2014-02-03 13:16:25
【问题描述】:
我有一个关于在 Bash 脚本中使用变量作为命令输入的简单问题。我想编写一个脚本,自动将目录foo 的某些内容复制到通过ssh 连接到另一个目录bar 中的嵌入式计算机。
换句话说,我想把下面的命令变成一个更容易维护的脚本:
ssh -r /foo/{file1,file2,dir1,*.h,*.hpp,*.c,*.cpp} uname@1.1.1.1:~/bar
到目前为止,我有以下内容:
#!/bin/bash
SOURCE='/foo';
FILES='{file1,file2,dir1,*.h,*.hpp,*.c,*.cpp}';
DESTINATION='uname@1.1.1.1:~/bar';
set -x
scp -r $SOURCE/$FILES $DESTINATION
set +x
但是,这会被执行为:
ssh -r '/foo/{file1,file2,dir1,*.h,*.hpp,*.c,*.cpp}' 'uname@1.1.1.1:~/bar'
我确定我在某处使用了错误类型的引号或括号,但我觉得我已经尝试了所有方法。感谢任何可以帮助新手的人。 :)
【问题讨论】: