Как я могу передать параметры командной строки сценарию через Тире? (14.04)

Я недавно задал этот вопрос о добавлении сценария оболочки для Подчеркивания штриховой линией:

В 14,04, как я запускаю скрипт удара, который я записал, не открывая терминал?

Это работало отлично.

Последующий вопрос: Как я могу передать параметры командной строки через Тире? Пример: В этом случае мою команду тире называют "Панелью". Сценарий снабжает мой экран панелями с 8 терминалами. Вот пример использования:

panel             # Tile the screen with 8 terminal windows.
panel --left      # Tile the left side with 4 terminals
panel --right     # Tile the right side with 4 terminals

И так далее. Как я могу передать аргументы как --left или --right через Тире? Идеально я хотел бы иметь этот рабочий процесс:

  • Нажмите СУПЕР клавишу
  • Ввести panel --left (например),
  • Тире уходит, и левая сторона снабжена панелями.

Прямо сейчас это запускает правильный скрипт, но игнорирует --left.

Совет?

8
задан 13 April 2017 в 05:24

2 ответа

Проблема в том, что вы не можете "запустить" файл .desktop из Dash с аргументами, поэтому установка точно , как вы имели в виду, невозможно боюсь. Однако, если ваш сценарий принимает аргументы , есть несколько элегантных альтернативных вариантов, может быть, даже лучше:


  1. Сохраните сценарий в ~ / bin

    • удалите расширение
    • make исполняемый файл
    • запустите его, нажав Alt F2 , введите команду

        
       

  1. Создайте быстрый список в средстве запуска Unity:

    (при условии, что вы сохранили сценарий в ~ / bin , сделали его исполняемым и удалили расширение, как в 1.)

    enter image description here

      [Desktop Entry]
    Name = name_of_your_script_like_you_see_it_in_Dash
    Exec =  
    Значок = / путь / к / некоторые / значок
    Тип = Приложение
    
    Действия = Панель; Панель - левая; Панель - правая;
    
     [Панель действий на рабочем столе]
    Имя = Панель
    Exec =  
    OnlyShowIn = Единство;
    
     [Панель действий на рабочем столе - слева]
    Имя = Панель - левая
    Exec =  
    OnlyShowIn = Единство;
    
     [Панель действий на рабочем столе - слева]
    Имя = Панель -право
    Exec =  
    OnlyShowIn = Единство;
     

    Сохраните его как panel.desktop в ~ / .local / share / applications и перетащите его в средство запуска.


  1. Создайте три разных сочетания клавиш, например Alt + <, Alt + ^ , Alt + > для запуска вашего скрипта + аргументы:

    «Системные настройки»> «Клавиатура»> «Горячие клавиши»> «Пользовательские сочетания клавиш»

    Щелкните «+», чтобы добавить свои команды:


  1. Не самый очевидный, но, исследуя варианты, следует упомянуть: вы можете вызвать список опций (zenity) из Dash:

    enter image description here

    Введите первый символ вашей опции, нажмите return, и ваш скрипт запустится с выбранным аргументом.

    enter image description here

    Снова предполагая, что вы сохранили скрипт в ~ / bin, сделали его исполняемым и удалили расширение языка, как в 1.:

    • Скопируйте скрипт ниже в пустой файл, сохраните его как panel_options.sh , сделайте его исполняемым.

       #! / Bin / bash
      
      test = $ (zenity --list "1. Панель" "2. Панель -левый" "3. Панель -право" --column = "Параметры панели" --title = "Панель")
      
      if [["$ test" = "1. Панель" *]];  тогда
         
      elif [["$ test" = "2. Панель - левая" *]];  тогда
         
      elif [["$ test" = "3. Панель-right" *]];  тогда
         
      фи
       
    • Создайте файл .desktop из приведенного ниже кода. В строке Icon = укажите путь к вашему значку, в строке Exec = укажите путь к pane_options.sh , сохраните его как панель .desktop в ~ / .local / share / applications

        [Desktop Entry]
      Имя = Панель
      Exec = / путь / к / panel_options.sh
      Значок = / путь / к / некоторые / значок
      Тип = Приложение
      StartupWMClass = Zenity
       
16
ответ дан 23 November 2019 в 05:27

Исходя из вашего исходного вопроса, похоже, что правильнее было бы переместить скрипт в ~ / bin / , который должен быть в вашем $ ПУТЬ по умолчанию.
Если вы сделаете это, вы снова сможете запустить свой скрипт, используя Alt F2 . Вы также сможете передавать ему аргументы, как в оболочке.

Вы также можете добавить любую другую папку, в которой вы храните свои скрипты, в свой $ PATH . Для этого откройте ~ / .profile в текстовом редакторе по вашему выбору:

# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

В конце добавьте строку (заменив своей папкой) и сохраните файл:

PATH="<folder>:$PATH"

Например, я добавляю $ HOME / .bin в свой $ PATH , чтобы мои двоичные файлы не загромождали мою домашнюю папку, но вы можете добавить любой каталог в только убедитесь, что на вашем пути нет ничего опасного (например, записываемого всем).
Изменения вступят в силу при следующем входе в систему.

0
ответ дан 23 November 2019 в 05:27

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

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