LINUX.ORG.RU

История изменений

Исправление d_a, (текущая версия) :

Потому что вы делаете фигню.

-c "/path/scrypt" "${arr[@]}"

вот это фигня. Всё что надо для -c должно уехать одним аргументом.

Если надо именно su (хотя я советовал sudo), то надо так:
[d_a@home ~]$ fun() { printf -v arr '%q ' "$@"; /bin/su -s /bin/sh -c "$arr" root; }
[d_a@home ~]$ fun printf "<%s> " 1\ 2 3\ 4
Пароль: 
<1 2> <3 4> [d_a@home ~]$ 
Upd: arr это не массив, обновил пост.

Исходная версия d_a, :

Потому что вы делаете фигню.

-c "/path/scrypt" "${arr[@]}"

вот это фигня. Всё что надо для -c должно уехать одним аргументом.

Если надо именно su (хотя я советовал sudo), то надо так:
[d_a@home ~]$ fun() { printf -v arr '%q ' "$@"; /bin/su -s /bin/sh -c "${arr[@]}" root; }
[d_a@home ~]$ fun printf "<%s> " 1\ 2 3\ 4
Пароль: 
<1 2> <3 4> [d_a@home ~]$