brace-expansion相关内容
我在我的 Dockerfile 中运行以下 RUN 命令,期望在每个列出的子目录下创建一个“日志"目录: RUN mkdir -p/opt/seagull/{diameter-env,h248-env,http-env,msrp-env,octcap-env,radius-env,sip-env,synchro-env,xcap-环境}/日志 但是当我检查图像时,我看到一个目录字面意思是“{d
..
WEEKS_TO_SAVE=4mkdir -p 每周.{0..$WEEKS_TO_SAVE} 给我一个名为每周的文件夹.{0..4} 在创建我丢失的文件夹时是否有大括号扩展的秘密? 解决方案 bash 在 变量扩展 之前做 brace 扩展,所以你得到 每周.{0..4}. 由于结果是可预测且安全的(不要相信用户输入),因此您可以在您的情况下使用 eval: $ WEEKS
..
我尝试了命令 cat tmp/file{1..3} >新建文件 并且完美运行 但是当我编译并执行以下c程序时 #include #include #include 无效主(){字符命令[40];int num_of_points = 3;sprintf(command,"cat tmp/file{1..%d} > file.Ver",num_of_points);系统(命令);
..
目标 我有一个长字符串 s ,它代表由逗号和破折号分隔的一系列数字(见下文).当几个数字相互跟随时,两个极端数字被写入并用破折号分隔.例如,系列4,5,6,7 写为4-7.我的目标是扩展这个字符串,让所有数字都用逗号分隔(4-7 应该变成 4,5,6,7). 我做了什么 这是一个字符串的例子 s="4092-4093,4095-4097,4104,4107,4111,4125-
..
我要匹配目录中的所有文件名,如下所示: h1.txt,h2.txt,h12.txt,h3.txt 如果我愿意 echo h [[:digit:]].txt 我知道 h1.txt,h2.txt,h3.txt 因此它匹配我想要的所有文件,但 h12.txt 除外,因为它有两位数字而不是一位数字.一个或多个数字是否可以扩展? 解决方案 想通了! echo h +([[
..
我试图更深入地学习bash,因此我决定制作一个乘法表.我具有以下语句的功能: echo $ [{1..10} * {1..10}] 但这给了我以下输出: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 2025 30
..
我怎样才能使bash扩展到传递给mkdir的变量中找到的所有内容?到目前为止,我已经尝试使用 eval 和 bash -c ,但是似乎没有任何作用 LEVEL_1 = 1,2,3LEVEL_2 = a,b,cDATA_L1 ="/tmp/{$ LEVEL_1}"DATA_L2 ="$ DATA_L1/{$ LEVEL_2}"用于$(cat file.txt)中的LINE;做#"cat"在这里返
..
我正在处理一个非常简单的bash脚本,我低估了为什么不赞成使用的$ []可以正常工作,而$(())似乎破坏了整个问题. 我所指的代码是: for {1..10}中的i;做printf%4d $ [{{1..10} * i]回声完毕 在此版本中,我没有任何问题,但是我不想使用不推荐使用的bash元素,这就是为什么我想切换到$(())的原因. 不幸的是,一旦我将代码更改为: p
..
我正在Dockerfile中运行以下RUN命令,期望在每个列出的子目录下创建一个“日志”目录: RUN mkdir -p / opt / seagull / {diameter-env,h248-env,http-env,msrp-env,octcap-env,radius-env,sip-env,synchro-env,xcap-env } / logs 但是,当我检查
..
请考虑以下脚本. #!/bin/bash echo {00..99} n=99 echo {00..$n} 此脚本的输出为: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
..
我正在编写一个脚本,该脚本需要使用shell的大括号扩展名,但是我没有尝试过.对于(人为)实例,说我有一个包含字符串 的变量 thing{01..02} 我(显然)想将其扩展为 thing01 thing02 在脚本内部,我该怎么做? (对于任何认为这是其他问题的重复的人,请更仔细地阅读它们.这个问题是关于从shell而不是shell脚本工作的,并且不需要扩展任意表达式
..
这是myscript.sh #!/bin/bash for i in {1..$1}; do echo $1 $i; done 如果我运行myscript.sh 3,则输出为 3 {1..3} 代替 3 1 3 2 3 3 显然$3包含正确的值,所以for i in {1..$1}的行为为何与我直接编写for i in {1..3}的行为不同? 解决方案
..
考虑以下脚本: #! /bin/bash -e echo {foo,bar} EX={foo,bar} echo ${EX} 此脚本的输出为: foo bar {foo,bar} 我希望echo命令在${EX}上执行大括号扩展.因此,我希望看到 的输出 foo bar foo bar 我想创建一个脚本,用户可以在其中提供带有大括号的路径,并在其中复制每个扩展版本.
..
我正在尝试编写bash脚本.我不确定为什么在我的脚本中: ls {*.xml,*.txt} 可以,但是 name="{*.xml,*.txt}" ls $name 不起作用.我知道了 ls: cannot access {*.xml,*.txt}: No such file or directory 解决方案 表达式 ls {*.xml,*.txt}
..
WEEKS_TO_SAVE=4 mkdir -p weekly.{0..$WEEKS_TO_SAVE} 给我一个名为Weekly的文件夹.{0..4} 创建丢失的文件夹时,花括号扩展是否有秘密? 解决方案 bash在variable expansion之前执行brace expansion,因此得到weekly.{0..4}. 由于结果是可预测且安全的(不信任用户输入),因
..
我在 Bash shell十进制到二进制转换中看到了以下代码我想知道它是如何工作的?我尝试谷歌搜索无济于事. D2B=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}) echo ${D2B[7]} 上面的代码有什么作用? 解决方案 {N..M},对于整数文字N和M,生成从N到M的整数序列,包括整数(包括空格).这称为"括号扩展
..
Bash允许我写在{h..k}中的语句 $ for i do echo $ i; done 但zsh只允许数列表扩展,例如 {8..13 } 。 最好的解决方法是什么?像 seq 字符... 解决方案 由于这仍然是最热门的google结果,更新答案: 当前版本支持bash style {c1..c2} 其中 c1 和 c2 是字符:
..
我已经在延长
..
我处理一个行这样的: 的mkdir -p“$ DEST_ROOT_PATH /”{“$ DEST_DIR1”,“$ DEST_DIR2”,...,“$ DEST_DIRN”} 这行是很长。我希望削减它,它的宽度将放入一个80列线。我试图逃跑用反斜杠线的末端,但空间alignement打破了扩展: $回声“哈”{A,B,\\ > C} 哈{A,B,C} 解决方案 您可以使用这个恶
..
由于这个非常简单的的Makefile : 所有: @mkdir -pv测试/ {A,B} 我得到这个操作系统输出x 10.6.8和CentOS 5.5: 的mkdir:创建目录`测试“ MKDIR:创建目录`测试/ A' MKDIR:创建目录`测试/ B' 但在Ubuntu 11.04我得到这样的: 的mkdir:创建目录`测试“ MKDIR:创建目录`测试/ {A,B}'
..