我可以在bash shell中对变量进行for循环吗?
|
我正在学习Shell,并且希望能够遍历一些变量。我似乎找不到任何人进行过此操作的地方,因此我不确定是否有可能。
基本上,我只是想通过对每个变量使用相同的sed命令来省去麻烦。但是,代码显然不起作用。我的问题是,是否可以遍历变量?如果没有,我应该怎么做?
title=\"$(echo string1)\"
artist=\"$(echo string2)\"
album=\"$(echo string3)\"
for arg in title artist album do
$arg=\"$(echo \"$arg\" | sed -e \'s/&/\\&/g\' -e \'s/</\\</g\' -e \'s/>/\\>/g\')\"
done
这是错误:
line 12: syntax error near unexpected token `$arg=\"$(echo \"$arg\" | sed -e \'s/&/\\&/g\' -e \'s/</\\</g\' -e \'s/>/\\>/g\')\"\'
没有找到相关结果
已邀请:
1 个回复
恋裂
,但不能写
。 分配给变量命名变量的一种简便方法是使用
。您还需要获得
的值(而不仅仅是
的值,即
),这又需要使用
。
分配给特定于bash / ksh / zsh但在普通sh中不起作用的变量命名变量的另一种方法是使用内置的
。在bash中,如果您在函数中执行此操作,则会使分配在函数中成为本地。要获得变量变量的值,可以使用
;这是bash特有的。
您的代码段存在其他问题:
是编写
的复杂方法,此外,如果包含反斜杠或以
开头,它可能会破坏
。 您必须在ѭ18need关键字之前使用命令终止符(
或换行符)。 如果您依赖bash / ksh / zsh,则可以使用
构造在shell内部进行替换。