"usando secuencias de comandos de shell" --esto es bash:
while read -r key value; do
IFS=, read -ra keys <<<"$key"
IFS=, read -ra vals <<<"$value"
for ((i=0; i < ${#keys[@]}; i++)); do
echo "${keys[i]} ${vals[i]}"
done
done <<END
a 1
b 2
c,d,e 3,4,5
f 6
g,h 7,8
END
Кажется, это невозможно без обходного пути.
https://askubuntu.com/a/294430
Gtk -запуск (часть gtk)никак не связана с x-terminal-emulator
. В моем случае glib2 2.68.0 (позади gtk -launch )имеет свою логику выбора терминала, жестко закодированную в prepend _terminal _к _vector()в gio/gdesktopappinfo. в.
# Most preferred
gnome-terminal -- APP ARG1 ARG2...
# Then
mate-terminal -x APP ARG1 ARG2...
xfce4-terminal -x APP ARG1 ARG2...
# After that
tilix -e APP ARG1 ARG2...
konsole -e APP ARG1 ARG2...
nxterm -e APP ARG1 ARG2...
color-xterm -e APP ARG1 ARG2...
rxvt -e APP ARG1 ARG2...
dtterm -e APP ARG1 ARG2...
# Last resort
xterm -e APP ARG1 ARG2...
Грязный обходной путь на моей машине
Я хочу вызватьalacritty -e...
1. Создать манекен гнома -терминал (α)
sudo install -vDm755 /dev/null /usr/local/bin/gnome-terminal
2а. Если у вас НЕ установлен gnome-terminal
, поместите следующее в α
#!/bin/bash
[ x"$1" = x"--" ] || { exec /usr/bin/gnome-terminal "$@"; exit 0; }
shift
TITLE="$(basename "$1")"
if [ -n "$TITLE" ]; then
/usr/bin/alacritty -t "$TITLE" -e "$@"
else
/usr/bin/alacritty -e "$@"
fi
2б. Если у вас установлен gnome-terminal
, поместите следующее в α
#!/bin/bash
[ x"$1" = x"--" ] || exit 1
shift
TITLE="$(basename "$1")"
if [ -n "$TITLE" ]; then
/usr/bin/alacritty -t "$TITLE" -e "$@"
else
/usr/bin/alacritty -e "$@"
fi