【问题标题】:Simplifying BASH command简化 BASH 命令
【发布时间】:2013-02-22 17:08:03
【问题描述】:

我发现自己不得不每隔一段时间就这样做一次,想知道是否有办法简化这个命令?

本质上,我所做的只是复制一个文件并重新命名它。创建A1, A2.. B1, B2.. 的功能是不可协商的 :) 因此,嵌套的 for 循环。

注意,我对创建实际的脚本文件不感兴趣。我需要一些又快又脏的东西。

bash> for x in {A..B}; do for i in {1..4};do cp orig.xml prefix_$x$i.xml; done;done

系统信息

平台: SunOS

Bash 版本: GNU bash, version 3.00.16(1)-release (i386-pc-solaris2.10)

【问题讨论】:

  • 这看起来很简单,够快,够脏。唯一的简化是脚本或别名。
  • 关于别名的好点。唯一的问题是我有时没有亲自登录系统。谢谢你,我希望有比我更有创意的人能更快地做到这一点:)
  • 这将是一个脚本或一些快捷方式文件,您可以在其中从一个 xterm 剪切和粘贴到另一个。
  • 好吧,既然你连接了这两个变量,你可以做for x in {A..B}{1..4}; do cp orig.xml prefix_${x}.xml;done,这有点短。但是,如果您需要不同位置的变量,嵌套循环可能会更好......
  • @OlafDietsche 它可能更简单,更脏。更快?不过我不知道..

标签: linux bash shell unix solaris


【解决方案1】:

它还有简化的空间,例如

for x in {A..B}{1..4}; do cp orig.xml prefix_$x.xml; done;

这适用于平台

SunOS 5.10 Generic_147441-12 i86pc i386 i86pc

GNU bash, version 3.00.16(1)-release (i386-pc-solaris2.10)

【讨论】:

  • +1 整洁!也适用于 Debian,fwiw。 GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)
  • 像这样的链式大括号扩展应该适用于所有支持大括号扩展的 bash 版本。
猜你喜欢
  • 2011-03-07
  • 2014-01-24
  • 2023-04-11
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 2023-03-22
  • 2022-01-22
相关资源
最近更新 更多