分页: 1 / 1
关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-05 16:56
由 tianmaxj
一个简单的问题
FILE_PATH='/temp/eth1.txt'
grep IPADDR $FILE_PATH
这样子 死活找不到路径
但是
grep IPADDR /temp/eth1.txt 却又可以正常输出
问题出在哪里啊? 各位大大!! 小生在此先谢过!
Re: 关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-06 7:02
由 aerofox
十有八九是有某个地方输入错了。
如果文件路径名中没有特殊字符,那么执行
代码: 全选
echo grep IPADDR $FILE_PATH
然后用鼠标拷贝输出结果到命令执行一下看看,如果没问题,再用光标键从历史记录中调用刚才那条命令,去掉 echo,我就不信会有问题。
Re: 关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-09 17:36
由 tianmaxj
你看!我 在根目录下 建了个temp目录 然后g.sh是777权限的 我连cd都失败了
Re: 关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-09 18:54
由 BigSnake.NET
太奇怪了, 把你的文件发上来看看
Re: 关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-09 19:23
由 aerofox
文件是 DOS 格式的吧?dos2unix g.sh 试试。
Re: 关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-09 19:45
由 tianmaxj
aerofox 写了:文件是 DOS 格式的吧?dos2unix g.sh 试试。
太感谢了!!困扰了我好多天!!
因为是初学者 smb了虚拟机里面的文件夹 用windows的记事本创建文件!!!
vi创建就不会出现这问题了!
感觉有点奇怪!! 同样是文本文件为啥会不一样呐??
Re: 关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-10 12:25
由 aerofox
DOS/Windows的文本文件以 回车/换行符(^M^J) 结束一行,Linux 用一个换行符结束一行。所以,用 Windows 下的编辑器编辑脚本,到 Linux 下行尾就多了个 ^M。cd $FILE_PATH 实际上相当于 cd /temp^M^M,其中 ^M 是一个字符,表示 ASCII 码为 13 的字符(回车)。这样,bash 就会给出错误信息:
代码: 全选
./g.sh: line 3: cd: /temp^M^M: No such file or directory
但是,在显示时,^M 表示光标回到行首,所以,你看到的就是:
代码: 全选
: No such file or directory
如果你运行
用 vi 打开 g.log,应该能看到“隐藏”的字符。
Re: 关于 路径存储成变量就找不到文件路径的问题
发表于 : 2009-09-12 19:34
由 tianmaxj
明白了!
谢谢大师!!!!