如何使用单个命令执行存在于较长路径中的 shell 脚本,而无需先 cd'ing 到该目录?

如何使用单个命令执行存在于较长路径中的 shell 脚本,而无需先 cd'ing 到该目录?

在 Linux 中,我总是cd选择一条较长的路径,然后运行脚本:

cd /scratch/someDir/someOthernestedDir/
./shellscriptName.sh 

如何避免输入这个较长的路径,然后一步执行命令?

任何路径中的类似以下内容都应该执行我想要的操作:

executeMyCommand

PS:我用的是C-shell。

[subhrcho@slc04lyo bin]$ echo $0
csh

答案1

运行脚本的主要方法有3种,无需指定完整路径。

  1. 将包含脚本的目录添加到您的$PATH.然后,您将能够从任何目录按名称执行脚本,就像任何其他程序一样。如果您正在使用csh,请将其添加到您的~/.cshrc

    set path = ($path /scratch/someDir/someOthernestedDir/)
    
  2. 将脚本的链接放置在路径中已有的目录中。例如/usr/bin

    ln -s /scratch/someDir/someOthernestedDir/shellscriptName.sh /usr/bin
    
  3. 设置别名为@EightBitTony建议,将此行添加到您的~/.cshrc

    alias executeMyCommand '/scratch/someDir/someOthernestedDir/shellscriptName.sh' 
    

答案2

命令别名。

alias name definition

例如

alias executeMyCommand '/scratch/someDir/someOthernestedDir/shellscriptName.sh'

从这里

添加命令别名

使命令别名成为工作环境的永久部分:

  1. 编辑 shell 启动文件 .cshrc 并添加定义别名的行。
  2. 保存更改并离开编辑器。
  3. 获取 shell 启动文件以使更改立即生效。例如:

    源.cshrc

相关内容