Tho*_*ner 1 variables bash loops
例如,我有成对的目录。这些对包含空格(和/或其他不便,如额外的句点或特殊字符。ext4 可以轻松支持任何东西。)
'/foo/dolor sit/amet.elit' '/bar/accumsan/luctus massa.nec'
'/baz/sagittis. Fusce/vitae.dolor' '/bam/Nunc aliquetjusto.metus'
Run Code Online (Sandbox Code Playgroud)
我想编写一个 bash 脚本,其中这些对是硬编码/常量。
我非常喜欢在分隔符或不需要预处理任意字符串的字符串中声明字符串(例如,如果可能,我不想在所有文字空格上添加转义符)
使用声明的字符串对,我希望进入一个循环,其中两个字符串在一次迭代中都可以作为单独的变量使用,例如$LEFT和$RIGHT。
可能使用简单的文件操作,如复制、移动、链接、差异。
笔记:
一种愚蠢而简单的方法,如果您无论如何都要对数据进行硬编码,则可以将数据硬编码为 shell 函数的参数。
#!/usr/bin/env bash
do_for_pair() {
echo $1
echo $2
}
do_for_pair "/foo/dolor sit/amet.elit" "/bar/accumsan/luctus massa.nec"
do_for_pair "/baz/sagittis. Fusce/vitae.dolor" "/bam/Nunc aliquetjusto.metus"
Run Code Online (Sandbox Code Playgroud)
您可以使用关联数组(bash4 或更高版本):
declare -A arr
arr['/foo/dolor sit/amet.elit']='/bar/accumsan/luctus massa.nec'
arr['/baz/sagittis. Fusce/vitae.dolor']='/bam/Nunc aliquetjusto.metus'
for LEFT in "${!arr[@]}"; do
RIGHT=${arr["$LEFT"]}
...
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2502 次 |
| 最近记录: |