В чем разница между сочетаниями клавиш и bash?

Когда я печатаю в терминале:

gnome-screenshot -a -f /home/manuel/Desktop/"`date`".png

У меня есть ожидаемый результат, создается файл с именем "dimanche 10 avril 2016, 23:36:50 (UTC+0200).png".

Однако, когда я пытаюсь связать это с помощью сочетания клавиш, вместо этого я получаю файл с именем

"`date`.png"

При дальнейшей попытке

bash -c "gnome-screenshot -a -f /home/manuel/Desktop/"`date`".png"

файл становится dimanche это означает, что он останавливается на 1-м пробеле.

Я читал, что при цитировании переменной bash для включения пробелов необходимо использовать кавычки, что, как я и сделал. Поэтому позже я попытался присвоить команду date переменной $times и использовать "$times" в команде, но с тем же результатом.

1114 Итак, мой вопрос: почему bash всегда должен быть болью в заднице? Если это действительно виновник.

Спасибо, если никто не ответит, я надеюсь, что создание файла bash вместо этого решит это как последнее средство, как это было много раз раньше ...

2
задан 11 April 2016 в 00:57

2 ответа

Ярлыки в Параметрах настройки системы-> "Клавиатура"-> "Ярлыки"-> "Пользовательские Ярлыки" не выполняются в оболочке.

Вот почему gnome-screenshot -a -f /home/manuel/Desktop/"`date`".png создает названный файл "`date`.png"; /home/manuel/Desktop/"`date`".png часть не интерпретируется и передается дословно gnome-screenshot, который создает названный файл "`date`.png".

bash -c "gnome-screenshot -a -f /home/manuel/Desktop/"`date`".png" вместо этого не работает просто, потому что Вы не выходите из второго уровня кавычек, который делает Bash выполненным date в подоболочке uquoted, которая подвергается разделению слова.

Поэтому просто выйдите из второго уровня кавычек:

bash -c "gnome-screenshot -a -f /home/manuel/Desktop/\"`date`\".png"

Или еще лучшие одинарные кавычки использования во внешней команде так для не выхода из второго уровня кавычек:

bash -c 'gnome-screenshot -a -f /home/manuel/Desktop/"`date`".png'

На использовании примечания стороны `` удерживается от использования и препятствуется; было бы лучше использовать $():

bash -c 'gnome-screenshot -a -f /home/manuel/Desktop/"$(date)".png'
5
ответ дан 11 April 2016 в 10:57
  • 1
    Я уже попробовал " флаги = IPv6" но это, кажется, не помогает. – dan 21 August 2017 в 09:17

Создайте executeable сценарий:

Редактирование файл т.е./usr/bin/myscreenshot с редактором по Вашему выбору как корень, т.е.

sudo vi /usr/bin/myscreenshot

Вставка это содержание в файле

#!/bin/bah
gnome-screenshot -a -f "/home/$USER/Desktop/`date`.png"

Делают файл, чтобы быть executeable сценарием:

sudo chmod +x /usr/bin/myscreenshot

Finaly создают сочетание клавиш к этой программе, и она должна быть сделана.

0
ответ дан 11 April 2016 в 10:57
  • 1
    О, хорошо, спасибо за справку. Это имеет смысл. Я should' мысль ve об использовании страниц справочника для удара. I' ll испытывают Ваше предложение – hwdbc 20 August 2017 в 17:06

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

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