终端星期五:Bash [关键扩展]

首先,我要道歉,因为上周五我无法写帖子,所以今天我将添加一个额外的钱来弥补这一迷茫的日子。 🙂

支撑扩展

在西班牙语中,键扩展在我看来似乎是受以下方面启发的功能 C壳,这会在花括号内输入的字符之间生成组合,使用的顺序是从左到右。 它一点也不复杂,但是在我们的GNU / Linux之旅中,它是一个非常有用的选项。

例如:

$ echo a {1,2,3} a1 a2 a3

与逗号一起使用时 (,) 在括号内的值a和值之间生成组合。 如果括号内没有任何值,则该键所包含的每个值只会显示一次。

$ echo {a,b,c} abc

它的使用根本不复杂,还有其他更常见的示例,例如在文件夹中创建许多目录

$ mkdir〜/乔布斯/ {一,二,三,四,五}

这将在jobs文件夹中创建五个文件夹,就像一次输入一个命令一样。 创建5个目录。

有XNUMX分的扩充 .. 这会创建一系列从初始值到最终值的数字或字符,请勿使用带字母的数字。

$ echo {1..5}#正确1 2 3 4 5 $ echo {a..f}#正确abcdf $ echo {a..5}#错误{a..5}#我想我永远都不会习惯了字母中的这种蓝色

我们可以通过创建周期来节省时间

#而不是为((i = 1; i <= 5; i ++))写$; 呼应“我的号码$ i”; 完成我的号码1我的号码2我的号码3我的号码4我的号码5#使用花括号扩展保存代码。 {1..5}中的i的$; do echo“我的电话号码$ i;完成我的电话号码1我的电话号码2我的电话号码3我的电话号码4我的电话号码5#当然,尽管输出有所不同,但仍然可以使用。$ echo”我的电话号码“ {1..5}我的号码1我的号码2我的号码3我的号码4我的号码5

好吧,我认为这个概念很明确,哈哈,现在我只说它是可组合和嵌套的,这是什么意思?
通过可组合,我们可以连接一个或多个键

$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3

通过嵌套,可以想象您可以在扩展键中使用扩展键

$ echo {a,c {1..3},d} a c1 c2 c3 d

最后从 重击没什么 可以增加值。

$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20

今天就这些了,谢谢您给我读信

追求卓越

如何创建本地垃圾箱

当我说一个 箱子 本地我的意思是一个我们拥有自己的脚本的目录,可以将其作为一个简单的命令来执行...

要做到这一点相对容易,首先需要做的是创建一个目录,我们将在其中保存脚本。

mkdir〜/ .bin#在此示例中它将被隐藏

现在我们有了我们的文件夹来保存脚本,但是直到将新.bin的路径添加到$ PATH后,该文件夹才起作用
为此,文件被编辑 bash_配置文件,并添加该行。

导出路径= $路径:〜/ .bin

瞧,这足以创建一个本地bin,当然,如果需要的话,对于我们编写一个快速脚本的示例,它将要求root权限。

#!/ bin / bash echo“ Hi $ 1,你好吗?”

用名称保存 你好
该脚本具有执行权限,仅能从终端调用该脚本

$ hello wada#这将显示消息Hello wada,你好吗?

因此,通过此快速技巧,您可以更快地运行脚本

对于今天身体健康的人来说,这就是全部
PS对不起,如果有的话,我的眼睛已经合上了哈哈哈😀


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   猎人

    我参加bash问题已经很长时间了,我还不了解这些括号的扩展,谢谢。

    关于路径技巧,Fedora默认情况下会执行类似的操作,但是在“〜/ .local / bin”中,查看我带到Jessie的bash_profile中的一个片段。

    路径= $路径:$ HOME / .local / bin:$ HOME / bin
    导出路径

    1.    Ricardo

      我有一些担忧:
      1.我如何让他给我两个间隔,以点​​数扩展; 年龄{1..24,55..90},并将年龄从1扩展到24,并持续55到XNUMX。 如我所做的那样没有用。 为什么?

      2.如果我希望第一个值为null并继续编号:
      wget: http://manga.favorito /图片 http://manga.favorito/imagen1
      我以下面的方式尝试了,但是wget没有得到: http://manga.favorito/imagen{,1..42}据我说,我将不得不留下没有数字的名字,并继续从1到42的编号,但事实并非如此。 为什么?

    2.    和田

      您是对的,有些发行版已经拥有或拥有一个.bin,但是每个人都可以理解,并且可以在任何发行版中做到这一点:D,谢谢您的光临。

  2.   演示

    非常感谢这些对linux世界及其安全性知识的贡献,希望我能在某个星期五阅读如何在终端中格式化Pendrive以及如何在终端中刻录任何免费系统的iso DVD / CD映像。

    1.    和田

      brother兄弟,谢谢你的话。我保证下星期五我会发表这个帖子。 我必须自定义Vim哈哈哈,但我不希望他们认为它只包含Vim。

  3.   爱德华多或

    优秀的终端文章,这是我很长时间以来阅读的最好文章,其中包括数篇博客,这些博客发布了这种风格的教程。 非常感谢!!

    1.    和田

      非常感谢😀我会尽量跟上。

  4.   li里

    本地垃圾箱的绝佳提示!
    的问候!

    1.    和田

      太好了,太好了,对您有用,非常感谢您通过兄弟brother

  5.   吉卡德

    挺好! 对此一无所知。 谢谢🙂

    1.    和田

      不客气的兄弟,谢谢您抽出宝贵的时间阅读😀

  6.   Ricardo

    我有一些担忧:
    1.我如何让他给我两个间隔,以点​​数扩展; 年龄{1..24,55..90},并将年龄从1扩展到24,并持续55到XNUMX。 如我所做的那样没有用。 为什么?

    2.如果我希望第一个值为null并继续编号:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    我以下面的方式尝试了,但是wget没有得到: http://manga.favorito/imagen{,1..42}据我说,我将不得不留下没有数字的名字,并继续从1到42的编号,但事实并非如此。 为什么?
    *抱歉,我把第一篇文章作为答案,但在某些地方是错误的

    1.    和田

      1.-您的逻辑是错误的,您必须嵌套它哈哈哈尝试 $ echo {{1..24},{55..90}}

      2.-与上一个相同... $ echo "URL"{,{1..42}}

      兄弟,别担心,我们在这里为我们提供帮助🙂

  7.   jvk85321

    用echo替换for看起来像这样

    回声“我的号码” {1..5} $'\ n'| sed -e:a -e'$!N; s / \ n / \ n /; ta'| sed -e:a -e'$!N; s / 5 \ n / 5 /; ta'

    但我更喜欢printf

    printf“ I,I%d \ n” {1..5}

    并使用相同的密钥扩展概念

    ATTE
    jvk85321

    1.    jvk85321

      您如何放置接线盒?

      ATTE
      jvk85321

  8.   jvk85321

    测试代码标签是否有效
    嘿嘿

    用echo替换for看起来像这样

    echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’

    pero prefiero printf

    printf “Mi numero %d\n” {1..5}

    并使用相同的密钥扩展概念

    ATTE
    jvk85321

    1.    jvk85321

      我留下了一些错误,但确实有效

      我住马尔科

      抱歉打扰了

      ATTE
      jvk85321

      1.    和田

        哈哈哈,你回答了自己,但是如果在标签之间 空间不足 ...

        而在的替代上,不必使用以下方法做足够多的管道哈哈哈哈:
        echo -e "Mi numero "{1..5}"\n\b"

        老实说,printf是在脚本中打印文本的最佳方法,它更可移植,但传统上使用echo。

      2.    和田

        我占用空间! 哈哈哈哈哈

        让我们现在来看😀

      3.    和田

        他妈的是“小于”代码“大于” /代码“大于”哈哈哈哈

      4.    jvk85321

        echo -e的问题不是标准的,因此它不适用于所有系统。

        也出来凌乱
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5

        jvk@jvktos:~$
        并与此
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        我认为第二个结果更好,哈哈哈

        ATTE
        jvk85321

      5.    jvk85321

        这些标签简直太累了,呵呵,让我们看看它们现在是否有效
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        并与此
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        我认为第二个结果更好,哈哈哈
        ATTE
        jvk85321

      6.    jvk85321

        无论如何,在行与行之间留出空格,这就是为什么我讨厌html,哈哈哈哈

  9.   华金

    优秀的! 我拍你的脚哈哈

    我不知道键是否可以嵌套,因为我也从未尝试过使用它们,它确实节省了很多代码,而且这种方式也更具可读性。 谢谢!

    1.    和田

      感谢您通过兄弟,我很高兴这是有用的

      1.    华金

        不客气,这就是我们在这里分享和贡献思想的目的。 我不知道如何编程,我只是在Bash中做了几件事,并且在两篇文章中发表了一些我做过的脚本。 我认为知道这一点可以使代码更易于理解。