Не думаю, що хтось цілком відповів на запитання. Він не запитував, чи може він повторювати струни в порядку. Швидше автор запитання хоче знати, чи може він імітувати поведінку покажчика функції.
Є кілька відповідей, схожих на те, що я б зробив, і я хочу розширити це на іншому прикладі.
Від автора:
function x() {
echo "Hello world"
}
function around() {
echo "before"
($1) <------ Only change
echo "after"
}
around x
Щоб розширити це, ми матимемо функцію x echo "Hello world: $ 1", щоб показати, коли дійсно виконується функція. Ми передамо рядок, який є назвою функції "x":
function x() {
echo "Hello world:$1"
}
function around() {
echo "before"
($1 HERE) <------ Only change
echo "after"
}
around x
Для опису цього рядок "x" передається функції around (), яка лунає "before", викликає функцію x (через змінну $ 1, перший параметр передається навколо) передаючи аргумент "ТУТ", нарешті echos after .
В іншому випадку, це методологія використання змінних як імен функцій. Змінні насправді містять рядок, що є ім'ям функції, і ($ variable arg1 arg2 ...) викликає функцію, що передає аргументи. Дивіться нижче:
function x(){
echo $3 $1 $2 <== just rearrange the order of passed params
}
Z="x"
($Z 10 20 30)
дає: 30 10 20, де ми виконали функцію з назвою "x", що зберігається у змінній Z і передає параметри 10 20 і 30.
Вище, де ми посилаємося на функції, присвоюючи їм імена змінних, щоб ми могли використовувати змінну замість фактичного знання імені функції (що схоже на те, що ви можете зробити в дуже класичній ситуації вказівника на функцію в c для узагальнення потоку програм, але попередньо -вибір функціональних викликів, які ви будете робити на основі аргументів командного рядка).
У bash це не вказівники на функції, а змінні, що посилаються на імена функцій, які ви згодом використовуєте.