LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2466|回复: 16

如何编写能够打开shell并直接进入预定目录的文件?[基本解决]

[复制链接]
发表于 2004-4-1 22:38:30 | 显示全部楼层 |阅读模式
我想建立一个文件,该文件可以打开shell,并在shell中直接进入我预定的路径,而不是像现在这样只是在用户目录下,还得自己输入路径,不知道这样说明白了没?谢谢!

完全是shell新手,请各位帮忙,谢谢!!
发表于 2004-4-1 22:43:47 | 显示全部楼层

回复: 如何编写和下列bat文件功能相同的shell文件?

最初由 wjytj 发表
@echo off
cd /d %~dp1
my_abaqus_path\abaqus cae database=%~n1

其基本功能是在任意目录点击某一后缀文件file(可建立文件关联)后,在该目录用abaqus cae database=file的方式打开,关键是abaqus 只能在shell下运行,cae 是其选项,现在只能在shell下进入该目录后运行,特别麻烦。

完全是shell新手,请各位帮忙,谢谢!!

点击?
其实你说的是X的文件与应用程序关联吧?
我怎么听不明白你在说什么?
 楼主| 发表于 2004-4-1 22:59:07 | 显示全部楼层
谢谢你的回复。
这样说吧,我想建立一个文件,该文件可以打开shell,并在shell中直接进入我预定的路径,而不是像现在这样只是在用户目录下,还得自己输入路径,不知道这样说明白了没?谢谢!
发表于 2004-4-1 23:08:41 | 显示全部楼层
最初由 wjytj 发表
谢谢你的回复。
这样说吧,我想建立一个文件,该文件可以打开shell,并在shell中直接进入我预定的路径,而不是像现在这样只是在用户目录下,还得自己输入路径,不知道这样说明白了没?谢谢!

修改你的主目录($HOME),不过最好不要这样。

个人建议(虽然还是不明白兄弟所言,我姑且猜测),分两种情况。
1.如果你要执行一个冗长路径下的可执行程序,而这个路径又不被包含在你的$PATH变量中,你可以修改$PATH变量(echo 'PATH=$PATH:/your/path' >> ~/.bashrc)。
2.另外,如果你不想每次都键入冗长的路径名去操作普通文件,在用户目录里做个软链接到你预定的路径即可。
 楼主| 发表于 2004-4-1 23:18:31 | 显示全部楼层
非常感谢你的耐心回复。
是这样的,有很多软件都有自己的工作目录,运行该软件时会自动生成很多文件,这些文件都会放置在该工作目录中,而在win中有所谓的起始目录来处理这个问题。
主要是该软件只能在shell下运行,如果在用户目录下运行就会在用户目录下生成很多不需要的文件,如果在我自定义的工作目录下运行呢,就可以集中管理这些文件,所以才有此一问。
比如在win下可以建立这样的批处理文件,使其指向command(C:\WINDOWS\system32\cmd.exe /k ),然后起始目录指向工作目录,这样,打开cmd后就直接进入我所需要的工作目录了。

谢谢!
发表于 2004-4-1 23:23:57 | 显示全部楼层
最初由 wjytj 发表
非常感谢你的耐心回复。
是这样的,有很多软件都有自己的工作目录,运行该软件时会自动生成很多文件,这些文件都会放置在该工作目录中,而在win中有所谓的起始目录来处理这个问题。
主要是该软件只能在shell下运行,如果在用户目录下运行就会在用户目录下生成很多不需要的文件,如果在我自定义的工作目录下运行呢,就可以集中管理这些文件,所以才有此一问。
谢谢!

这是什么软件?奇怪。开源软件一般不会如此差劲。
来,利用bash的特色,创建一个假名来解决问题。
echo "alias abaqus='cd /your/path; abaqus'" >> ~/.bashrc
把/your/path换成你的程序路径。
以后只要键入该假名即可,它会在运行程序之前先转入你的路径。

例子:
[root@home tmpdir]# echo "alias pwd='cd ~;pwd'" >> ~/.bashrc
[root@home tmpdir]# pwd
/root
[root@home root]#
 楼主| 发表于 2004-4-1 23:33:13 | 显示全部楼层
这不是一个开源软件,是商业软件,只是用来在Linux下自己学习而已。
在win下我可以建立这样的批处理文件,使其指向command(C:\WINDOWS\system32\cmd.exe /k ),然后起始目录指向工作目录,这样,打开cmd后就直接进入我所需要的工作目录了。

非常感谢你的回复,您的方法我可以试试,但似乎仍然不是最好的,如果能像win的bat文件那样就最好了,我想肯定有的,对吧?
发表于 2004-4-1 23:34:40 | 显示全部楼层
最初由 wjytj 发表
这不是一个开源软件,是商业软件,只是用来在Linux下自己学习而已。
在win下我可以建立这样的批处理文件,使其指向command(C:\WINDOWS\system32\cmd.exe /k ),然后起始目录指向工作目录,这样,打开cmd后就直接进入我所需要的工作目录了。

非常感谢你的回复,您的方法我可以试试,但似乎仍然不是最好的,如果能像win的bat文件那样就最好了,我想肯定有的,对吧?

请你试试看。假名的方法绝对比M$的批处理巧妙。

你只需键入一个命令即可实现你的目的噢!
 楼主| 发表于 2004-4-1 23:36:03 | 显示全部楼层
ok,我试试看,明天回复您,非常感谢home_king
兄的热心帮助!!
发表于 2004-4-1 23:45:34 | 显示全部楼层
其实学习Linux完全不必把windows的经验套用过来,这是很不智的,会走很多弯路。

你说的command.com /k,同样也可以用假名来实现。
echo "alias chtopath='cd /your/path'" >> ~/.bashrc
相对于点击批处理文件,从此,我们只需在shell里键入chtopath就可以转入你的工作目录了。
对于冗长的/your/path路径,这样做可以省去每次键入它的烦恼,一个chtopath命令搞定。
(如果chtopath命令依然觉得长,可以键入cht后按TAB,就可以享用bash的自动补齐功能了)

善用你的bash,它就是Linux的半壁江山。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表