Есть пример:
#!/bin/bash -x
action ()
{
eval "${@:4}"
}
act ()
{
action 0 2 2 "$@"
}
func ()
{
pushd "$1"
eval "$2"
eval "$3"
popd
}
act func /tmp/ "ls -Al > temp.txt" "cp -fv ./temp.txt $HOME"
act echo OK
act "{ echo OK1; echo OK2; }"
"ls -Al > temp.txt", "cp -fv ./temp.txt $HOME" на "'ls -Al > temp.txt'", "'cp -fv ./temp.txt $HOME'".
Вопрос заключается в том, есть ли выработанными десятилетиями упорного труда программерской мысли подход к решению таких ситуаций?