所以我一直在寻找一种方法来获取一个字符串并将其变成一个命令列表这是我到目前为止所拥有的:
#!/bin/bash
shopt -s nocasematch extglob expand_aliases
alias V='alias'
V a="echo "hi""
V b="echo "bye""
V c="echo "say""
function test () {
tt=$(echo acbacbcab | fold -w1)
echo "$tt"
}
test
我得到的输出是
a
c
b
a
c
b
c
a
b
我想要的输出是
hi
say
bye
hi
say
bye
say
hi
bye
如果你可以提供帮助,那将是很好的我已经尝试了eval,我的方式只能得到第一个别名来完成其余的只是字母,我看到很多人在其他要求说使用xargs或者我不知道他们是如何工作的,或者他们没有做我想让他们做的事。
答案 0 :(得分:0)
我建议使用功能:
#!/bin/bash
a() { echo "hi"; }
b() { echo "bye"; }
c() { echo "say"; }
mytest() {
c="acbacbcab"
while IFS= read -r -n 1 foo; do
$foo
done <<< "$c"
}
mytest
输出:
hi say bye hi say bye say hi bye