【问题标题】:Use C shell alias variables except for one使用 C shell 别名变量,除了一个
【发布时间】:2013-03-06 13:57:40
【问题描述】:

我想创建一个别名,它使用第一个 cli 变量作为输入,并将其余变量放在最后,例如:

alias rerun '`head -n 2 \!:1/some_log_file.log | tail -n 1` \!:*'

在示例中,我想使用第一个变量作为目录名称,最后使用所有其他变量(第一个变量除外),

编辑: 我目前从上面的例子中得到的是:第一个参数按计划进入目录名称,所有参数都像这样走到最后(测试是包含日志文件的目录):

% rerun test foo bar foo
<executed_cmd> test foo bar foo

我想要:

<executed_cmd> foo bar foo

这样我就可以将额外的参数传递给执行的命令(无限制)

谢谢 亚历克斯

【问题讨论】:

  • 考虑编辑您的问题以包含有关使用此代码时发生的情况的信息。看起来它可能会起作用。祝你好运。
  • Bash 和 sh 使您能够编写子例程,使您想做的事情变得微不足道。所有酷孩子都使用 bash,你也应该这样做。
  • 是的,我知道,在家里和大学我使用 Bash,但在工作中他们使用 CSH,所以我真的别无选择

标签: unix alias csh


【解决方案1】:

你想在一个别名中使用多个参数,你可以这样做:

例如:

myalias_func()
{
        ls -ltr $1 >> /tmp/$2
}
alias myalias=myalias_func

在你的情况下,

rerun_func()
{
head -n 2 ...
}
alias rerun=rerun_func

【讨论】:

  • 我认为这行不通。请注意,您包含的链接仅将 csh setenv var = value 转换为 bash fmt var=value。我们都知道 bash 比 csh 好,但是有些人在他们可以使用的 shell 中别无选择,而另一些人则选择使用它。祝大家好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-23
  • 2014-01-12
  • 2016-01-26
  • 1970-01-01
  • 2022-10-24
  • 2014-04-29
  • 2022-11-14
相关资源
最近更新 更多