使用别名和字符串来执行多个命令

时间:2017-12-10 06:17:01

标签: linux bash alias

所以我一直在寻找一种方法来获取一个字符串并将其变成一个命令列表这是我到目前为止所拥有的:

#!/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或者我不知道他们是如何工作的,或者他们没有做我想让他们做的事。

1 个答案:

答案 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