linux下文件可以看到但不可以使用

fpcc 2010-05-14 03:58:42
我在LINUX的HOME路径下建立了一个文件夹HELLO,在里我写了一个脚本,主要是配置一些环境变量,然后我就可以不用一条条的去设置了.
但奇怪的是,以前一直是好的,今天用一个同名文件覆盖后,用ls命令可以看到这个文件,但是用cat 文件名却报没有这个文件或目录,VI,或者./文件名 执行都报这个错误.
重启后发现cat 文件名\,这个用TAB自动补全的,可以看到内容,也可以执行.
请问大家带文件名后带\和不带有什么区别?
再请教一个问题,执行SHELL脚本,.(这里有一个空格)脚本名与./脚本名,有什么区别.
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fpcc 2010-05-15
  • 打赏
  • 举报
回复
可是以前我都是./文件名,来设置环境变量,只要不关闭终端,就可以在里面按照前面脚本的设置来测试其它程序。不知道为什么,谢谢楼上的,呵呵,
结帐。
steptodream 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fpcc 的回复:]

谢谢楼上的,学习了,现在出现一个新问题,就是 . (空格)文件名,执行后环境变量正确设置,而./文件名
执行后不起作用了,也就是说后者似乎不起作用,原来还是正常的啊,好像突然不起作用了。为什么呢?
[/Quote]
. (空格)文件名 等同于source 文件名一样 是让文件名里的环境变量设置等生效 如果是shell脚本也会执行
而./文件名 就是执行当前目录下的文件名脚本 在里面设置的环境变量在脚本执行完之后就无效了

有空格和无空格 是很明显的区别 为什么要混淆在一起呢?
fpcc 2010-05-14
  • 打赏
  • 举报
回复
谢谢楼上的,学习了,现在出现一个新问题,就是 . (空格)文件名,执行后环境变量正确设置,而./文件名
执行后不起作用了,也就是说后者似乎不起作用,原来还是正常的啊,好像突然不起作用了。为什么呢?
steptodream 2010-05-14
  • 打赏
  • 举报
回复
做个测试你就知道他的末尾有空格了
比如你的能看到的文件名是test 我们在末尾追加一个A
如果test的末尾有空格则是test A 如果没有空格则是testA
到HELLO夹下去执行如下命令 把test换成你实际的那个文件 看看输出结果
a=$(ls test*);echo ${a}A
steptodream 2010-05-14
  • 打赏
  • 举报
回复
重启后发现cat 文件名\,这个用TAB自动补全的,可以看到内容,也可以执行.
-----------------------
那是你的文件名后有空格或者多个空格
"test" "test "是有区别的吧
你按tab自动补全 \其实是\空格 只是你肉眼没看到这个空格

脚本名与./脚本名,有什么区别.
-------------------------
比如你这个脚本名叫test.sh
./test.sh 执行当前目录下的test.sh
test.sh 去环境变量PATH里的路径里去找test.sh并执行

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧