【发布时间】:2009-01-05 18:04:16
【问题描述】:
这是我编写的 shell 脚本的 sn-p 代码:
for src in $(find . -type f -maxdepth 1 \! -name ${deploy} \! -name gvimrc)
do
src=$(basename ${src})
dest="~/.${src}"
copy="${src} -> ${dest}"
cp $src $dest && echo -e "${ok} ${copy}" || echo -e "${fail} ${copy}"
done
由于某种原因,cp 无法执行。例如,在$src='bashrc'的情况下,我得到这个错误:
cp: ~/.bashrc: No such file or directory
不过,我不明白为什么会发生这种情况,因为很明显,~/.bashrc 是目标,而不是源,所以cp 不应该关心它是否存在。究竟出了什么问题?
【问题讨论】:
-
考虑使用 'eval' - 如: eval cp "$src" "$dest" ... 这应该确保发生 shell 扩展。