我有一个 Bash 脚本中的行列表,如下所示
if [ ! -z "$clone01" ]; then git clone "$clone01"; fi
if [ ! -z "$clone02" ]; then git clone "$clone02"; fi
if [ ! -z "$clone03" ]; then git clone "$clone03"; fi
# $clone01 .... through to ... $clone60
if [ ! -z "$clone60" ]; then git clone "$clone60"; fi
当数字小于 10 时,变量末尾的前导零很重要。
我尝试过各种替换和循环等。这段代码非常重复,总共有 60 行。
如何动态创建此代码并使其成为我执行脚本的一部分?解决这个问题的最佳方法是什么?
好吧,不要那样做,太丑了。将 URL 放入一个数组并循环遍历它:
或将它们放在一个文件中,每行一个,然后循环读取这些行。在这里,就像您所做的那样,保护空行可能很有用。
#
我们也可以忽略以注释开头的行:如果你也想要行计数器,很容易添加算术扩展。
不要
eval
用来做这个。更好的工具是变量间接:[[ $var ]]
做同样的事情[ ! -z "$var" ]
。请注意,在 60 个变量中存储 60 个值并不是最好的方法,您可能希望使用数组来执行此操作。您是否尝试过将 if 包装在像这样的 for 循环中?
这将产生以下输出:
所以这样的事情似乎可以解决问题:
有用的资源:
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html
http://tldp.org/LDP/abs/html/varsubn.html