如何将命令列表分组为单个关键字?

How to group a lists of commands into a single keyword?

我目前正在使用 csh shell。 每次我想编译我的代码,我必须做很多cd东西。

例如{

cd ~/path1/path2/path3
make depend
make 
make install

}

我想知道是否可以添加一些东西到(例如:.cshrc 文件) 所以我可以定义一个新的关键字,它替换我之前必须输入的所有命令以节省一些时间。

听起来您正在寻找 alias

如果您只想 运行 您问题中的命令作为一个新命令,而不想将它们放在脚本中,您可以在 .cshrc 中创建一个别名像这样的脚本:

alias foo 'cd ~/path1/path2/path3 && make depend && make && make install'

现在,在您的 shell 中 运行ning foo 将 运行 所有这些命令。如果任何一个命令失败,将停止 运行ning 命令列表。 (这就是 && 的用途。)

您可以使用看起来像历史替换的符号来检索别名中的选项。例如:

alias foo 'cd ~/path1/path2/\!:1 && make depend && make && make install'

这将允许您 运行 类似于 foo bar 并且别名将 cd ~/path1/path2/bar。请注意,这只是在进行替换;在这种情况下,如果您要省略该选项而只是 运行 foo,您的 make 链将是 运行 in ~/path1/path2/。如果这是一个问题...写一个 shell 脚本而不是使用别名。