免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2350 | 回复: 6
打印 上一主题 下一主题

bash 能实现转换目录吗?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-12 11:09 |只看该作者 |倒序浏览
用bash能不能实现目录的转变啊,
假如我想在改变当前目录到/usr/java/javawork
就象执行windows下的bat文件,
我编了一个,可是不能改变,
#!/bin/bash
cd /usr/java/javawork
#end
不过没改变目录,

论坛徽章:
0
2 [报告]
发表于 2003-04-12 11:27 |只看该作者

bash 能实现转换目录吗??

alias CMD='cd /usr/java/javawork'

然后执行CMD

论坛徽章:
8
白羊座
日期:2015-01-21 18:35:03巳蛇
日期:2015-02-03 17:30:37处女座
日期:2015-02-03 17:31:02羊年新春福章
日期:2015-02-03 17:31:21巨蟹座
日期:2015-02-05 16:01:06申猴
日期:2015-02-05 16:01:31摩羯座
日期:2015-02-05 16:01:41酉鸡
日期:2015-02-05 16:02:37
3 [报告]
发表于 2003-04-14 09:53 |只看该作者

bash 能实现转换目录吗??

原帖由 "sky-wu" 发表:
用bash能不能实现目录的转变啊,
假如我想在改变当前目录到/usr/java/javawork
就象执行windows下的bat文件,
我编了一个,可是不能改变,
#!/bin/bash
cd /usr/java/javawork
#end
不过没改变目录,


如果是要在脚本文件里面执行一系列的动作的话,你已经实现了
因为你执行的这个脚本文件内容是在新的SHELL里面运行的,它有自己的环境变量;你的 cd /usr/java/javawork 也已经执行成功,可以在脚本里面用 pwd 测试一下。

  1. #!/bin/bash
  2. cd /usr/java/javawork && echo "Current PATH is `pwd` "
  3. #end
复制代码

论坛徽章:
8
白羊座
日期:2015-01-21 18:35:03巳蛇
日期:2015-02-03 17:30:37处女座
日期:2015-02-03 17:31:02羊年新春福章
日期:2015-02-03 17:31:21巨蟹座
日期:2015-02-05 16:01:06申猴
日期:2015-02-05 16:01:31摩羯座
日期:2015-02-05 16:01:41酉鸡
日期:2015-02-05 16:02:37
4 [报告]
发表于 2003-04-14 09:54 |只看该作者

bash 能实现转换目录吗??

但是如果希翼在你的SHELL里面用脚本信息来更改当前SHELL的路径的话,可是没指望的
如果写过C程序的话,应该理解子进程和父进程的关系。

不过也不是没有可能的,如果脚本文件yourfilename内容是这样的话:

  1. #!/bin/bash
  2. cd /usr/java/javawork && echo "Current PATH is `pwd` "
  3. #end
复制代码


可以在命令行这样执行:
. ./yourfilename

论坛徽章:
0
5 [报告]
发表于 2003-04-15 11:56 |只看该作者

bash 能实现转换目录吗??

可以在命令行这样执行:
. ./yourfilename


请问楼上的 ,这是什么意思阿,?

../代表什么阿,不会是上级目录吧?  

论坛徽章:
8
白羊座
日期:2015-01-21 18:35:03巳蛇
日期:2015-02-03 17:30:37处女座
日期:2015-02-03 17:31:02羊年新春福章
日期:2015-02-03 17:31:21巨蟹座
日期:2015-02-05 16:01:06申猴
日期:2015-02-05 16:01:31摩羯座
日期:2015-02-05 16:01:41酉鸡
日期:2015-02-05 16:02:37
6 [报告]
发表于 2003-04-17 15:24 |只看该作者

bash 能实现转换目录吗??

是 . ./ ,不是 ../ ,其实关键之处就是这个 "."

关于这个 . 的说法我也不是很清楚,因为我不曾在什么地方看到过它的详细介绍。我只能按照我的理解来说明,所以我说的内容可能有不确切的地方,也可能是错误的。

我认为在SHELL命令行状态下,在一个文件前面(往往是文本文件,脚本文件亦可)加一个符号"."以及一个空格,能够使得该文件里面的文本信息逐条在SHELL命令行下运行(那怕有一行的信息不是SHELL命令、SHELL语句,而只是一些乱七八糟的东西、符号)。

这样的一种执行方法和脚本文件的执行存在一个本质的区别:它使用的环境变量就是SHELL命令行的,而脚本文件执行时的环境变量是自己的。

简单的说,符号 ". " 能够从后面的文件(文本文件、SHELL脚本文件,请注意:该文件无需执行权限,可读即可)逐行读取信息,把该信息当作SHELL命令行的命令拿来执行,最后一个命令的返回值就是该条命令 . ./filename 的返回值。

脚本文件执行时命令行格式是这样的: ./filename
1. 首先需要设置文件filename的可执行权限;
2. 它执行时是在新的SHELL环境里面的,包括变量设置等。

论坛徽章:
0
7 [报告]
发表于 2003-04-17 17:15 |只看该作者

bash 能实现转换目录吗??

help .

= source
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP