Почему эта команда запускает бесконечные терминалы и как заставить ее работать?

#!/bin/bash
gnome-terminal --command='/home/user23/bin/n-youtube-dl "$1"'

Я хочу передать аргумент, переданный этому сценарию, другому сценарию, запущенному в терминале. Но это запускает бесконечные терминалы гномов.

Можете ли вы объяснить, почему это так и как заставить это работать?

Я запускаю zsh, у меня есть основная оболочка, если это имеет значение, терминал запускает сценарий на zsh, тогда я думаю.

Обновление:

#!/bin/bash
gnome-terminal --command='echo "WTF"'
read -p "Press [Enter] key"

Просто закрываем термин быстрее, чем я вижу WTF. Разве это не должно остановиться? То же самое касается замены WTF на $1 снова, без возрождения.

0
задан 13 April 2014 в 12:45

2 ответа

Чтобы выполнить команду в gnome-terminal, и безопасно передать аргументы ему, необходимо использовать -x опция, так как это старается не анализировать строку двумя оболочками.

#!/usr/bin/env bash
gnome-terminal -x youtube-dl "$@"
0
ответ дан 13 April 2014 в 12:45
#!/bin/bash
gnome-terminal -x bash -c "cd ~/Downloads/youtube; youtube-dl \"$@\"; read -p \"Press [Enter] key\""

Это - то, как я на самом деле решил это.

0
ответ дан 13 April 2014 в 12:45

Другие вопросы по тегам:

Похожие вопросы: