在bash中,下划线变量后跟范围是什么意思:$ _ {0..10}

根据tldp.org,bash下划线变量为:

  

下划线变量是在Shell启动时设置的,包含在参数列表中传递的正在执行的Shell或脚本的绝对文件名。随后,在扩展后,它扩展为上一个命令的最后一个参数。它还设置为执行的每个命令的完整路径名,并放置在导出到该命令的环境中。检查邮件时,此参数保存邮件文件的名称。


但是this如何在Bash中重复一个字符的答案?对它的用法很奇怪:

# exactly the same as perl -E 'say "=" x 100'.
echo -e ''$_{1..100}'\b='

在使用此变量时,我无法从其语义上做任何事情,所以问题是什么

  • 一个字符串。
  • 其次是$_
  • 之后是范围扩展。
  • 后跟另一个字符串

是bash吗?

示例:

$ echo $_{0..10}         ; echo $_{0..10} | wc

      1       0       1


$ echo ''$_{0..10}''     ; echo ''$_{0..10}'' | wc

      1       0      11


$ echo ''$_{0..10}'x'    ; echo ''$_{0..10}'x' | wc
x x x x x x x x x x x
      1      11      22


$ echo 'x'$_{0..10}''    ; echo 'x'$_{0..10}'' | wc
x x x x x x x x x x x
      1      11      22


$ echo 'ab'$_{0..10}'cd' ; echo 'ab'$_{0..10}'cd' | wc
abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd
      1      11      55
zhaoqiyun59240 回答:在bash中,下划线变量后跟范围是什么意思:$ _ {0..10}

echo $_{0..10}

括号被扩展为:

echo $_0 $_1 $_2 $_3 $_4 $_5 $_6 $_7 $_8 $_9 $_10

它打印出11个名字奇怪的变量的值,它们分别名为_0_1_2,依此类推。他们没有设置-这就是为什么您什么都看不到的原因-但是如果有,您将:

$ _0=zero _1=one _2=two _3=three _4=four _5=five _6=six _7=seven _8=eight _9=nine _10=ten
$ echo $_{0..10}
zero one two three four five six seven eight nine ten

$ echo ''$_{0..10}'x'

同样,但是现在每个变量名后面都有一个x。它不是变量名称的一部分。这是一个单独的文字字符x,就像您写的一样:

echo ${_0}x ${_1}x ${_2}x ${_3}x ${_4}x ${_5}x ${_6}x ${_7}x ${_8}x ${_9}x ${_10}x

现在变量具有值时的输出为:

$ _0=zero _1=one _2=two _3=three _4=four _5=five _6=six _7=seven _8=eight _9=nine _10=ten
$ echo ''$_{0..10}'x'
zerox onex twox threex fourx fivex sixx sevenx eightx ninex tenx

这足以理解您问题中的其他示例。

这也表明linked answer是重复字符串的不良方法。它依赖于未设置的这些变量。不推荐。

,

这是大括号扩展。

阅读

export const setTrack = (trackId) => { (dispatch,getState) => { const { audioObj } = getState(); if (audioObj != null) { audioObj.unload(); } dispatch({ audioObj: new Howler({ [ ... some options ],onload: () => { dispatch({ type: PLAYER_LOAD_SUCCESS }); },onloaderror: () => { dispatch({ type: PLAYER_LOAD_ERROR }); } }),type: PLAYER_SET_TRACK }); }

这将使用给定的数字扩展存储在info bash -n "Brace Expansion"中的最后一条命令。

本文链接:https://www.f2er.com/3132794.html

大家都在问