【问题标题】:how to make alias work at runtime?如何使别名在运行时工作?
【发布时间】:2012-08-19 02:58:13
【问题描述】:

我知道如果我之前创建了别名,我可以将这个别名定义放在 /etc/profile 中,但现在我别无选择,因为一些构建操作正在进行中。我可以在新的 bash 上使用 alias wget='wget -c',但它不适用于现在正在构建操作中的 bash,那么有什么方法可以使别名对其他打开的 bash 起作用?

也许我可以将 /usr/bin/wget 移动到 /usr/bin/tmp/wget,然后在 /usr/bin/wget 上创建一个 sh 文件 这个文件的内容是/usr/bin/tmp/wget $1

这尤其适用于只有一个变量的情况,但如果有 2 个或更多变量,此脚本如何工作?

或者有没有更好的方法可以使别名起作用,或者其他可以产生相同效果的方法,就像那个 sh 文件一样(如何更改这个文件以使其支持更多变量?)

【问题讨论】:

  • 更像"$@" -- 添加引号可以保护包含空格的参数。

标签: linux bash shell centos alias


【解决方案1】:

您可以使用"$@" 而不是$1,这将复制所有参数,而不仅仅是第一个。

【讨论】:

  • +1。更好的是,"$@"(带双引号),以便保留空格和星号之类的东西(而不是破坏东西)。
  • 是的,它不依赖于您的发行版,而是依赖于您的shell,并且它受bash支持,您使用的是哪一个? (顺便说一句,您的问题被标记为 centos 和 bash)
【解决方案2】:

您可以将行 continue = on 添加到 ~/.wgetrc。 See the docs 了解更多信息。

如果要将重试限制设置为 3,请将 tries = 3 添加到 ~/.wgetrc

【讨论】:

  • 也许我需要更多的选项,例如最大重试时间应该是20,那么我应该在.wgetrc中放入什么?
  • .wgetrc 中的选项是否立即生效?或者它可能会在调用下一个 wget 时起作用?
  • 那么有什么方法可以改变运行时选项,例如 wget 只是被阻止,现在我想告诉超时选项,这可能吗?
  • wgetrc 中有wait = n 选项,使用它可以强制每次重试超时。我认为在 wget 开始执行后没有办法做到这一点(当然你可以使用killall wget)。
  • killall 是不允许的,这会使系统混乱,安装不完整:(
猜你喜欢
  • 2021-01-25
  • 2021-08-02
  • 2010-10-11
  • 2012-04-22
  • 2018-04-21
  • 2014-01-21
  • 2015-04-25
  • 2016-09-15
  • 2021-11-26
相关资源
最近更新 更多