使用变量定义路径

时间:2013-05-20 18:57:11

标签: bash path cygwin

#!/bin/bash
SOURCE="/C/MSDFFiles/IPFiles/Source"

WORKING="/C/MSDFiles/IPFiles/Working"

rm -rf ./Working/*

cp "$SOURCE/"* "$WORKING/" 2> /dev/null

echo "DONE"

我正在尝试将所有文​​件从源码复制到工作但是它无法正常工作,我的输出完成但文件没有传输到工作文件夹

2 个答案:

答案 0 :(得分:3)

您的问题很可能是your script's line endings being currupted by Windows的结果。 Linux行结尾始终是\n(一个换行符),但在Windows中它们是\r\n(回车符后跟换行符)。

这里你可能在路径声明后有一个回车符。 从脚本中删除回车符,它应该解决问题。

如果您使用vim,则可以使用:set list命令查看文件中的所有不可打印字符。

答案 1 :(得分:3)

从错误消息判断

  

cp:target` \ r'不是目录

您的脚本中的换行符似乎存在问题(\rCarriage Return)。你在Windows上编辑文件了吗?

您应该可以使用

之类的内容删除这些字符
recode ibmpc..latin1 script.sh

mv script.sh script.tmp
cat script.tmp | tr -d '\r' > script.sh
rm script.tmp

sed -i "s/\r//g" script.sh