第一个Cygwin下的shell脚本问题

环境:win7, Cygwin

问题:在shell脚本中输出一个文件如yy.txt,想将此文件copy到Cygwin目录下,但执行后就说找不到此文件。用ls命令看后,发现生成的文件不是“yy.txt”,而是“yy.txt?”,多了一个问号。

自我解答:这是Cygwin对脚本中换行符的错误理解。(shell对空格等格式是变态的敏感!!)

可以执行的代码:

#!/bin/bash
echo "Hello World!"
#cd c:/Users/ggg/Desktop
pwd >> yy.txt
cp yy.txt? /home/ggg


完美解决办法:用dos2unix 命令,将window下的脚本文件格式转换成标准的unix格式。

补充:在Cygwin下存在这个问题,但是在 Git Bash下就没有这个问题。



另一个问题:为什么cd不到制定的目录?

#!/bin/bash
echo "Hello World!"
cd c:/Users/ggg | pwd >> yy.txt | cp yy.txt /home/ggg/yy2.txt

结果yy.txt中是/cygdrive/c/Users/ggg/Desktop,这是此执行的.sh文件的目录,为什么并没有cd到c:/Users/ggg目录下呢?输出没有任何错误啊??

你可能感兴趣的:(第一个Cygwin下的shell脚本问题)