Как запросить аргумент и чем запустить программу с аргументом

Я не уверен, достаточно ли ясен мой вопрос, так что вот какое-то объяснение того, чего я пытаюсь достичь.

Мне нужно создать собственный ярлык для запуска хомяка (трекер времени) для отслеживания новой активности. Команда:

$ hamster start <activity name>

поэтому я хочу нажать горячую клавишу (Super+H), а затем запросить название активности. Тогда текст, который я введу, будет использован в команде

$ hamster start <my entered text>

Большое спасибо.

3 ответа

Решение

Было бы что-то вроде

hamster start "$(zenity --entry)"

работа для тебя?

Если вы пытаетесь получить скрипт, который будет запрашивать у вас имя действия, вы можете использовать следующий код

#!/bin/bash

echo "Please enter the activity name"
read activity

hamster start $activity

Когда вы запустите скрипт, вам будет предложено сообщение "Пожалуйста, введите название действия". как только вы введете название своей деятельности и нажмете Enter, она запустится hamster start activity, Вы можете разместить этот скрипт в /usr/local/bin для легкого доступа. В основном, если вы назовете его "myscript" и поместите в эту папку, вы можете запустить скрипт, просто запустив myscript, не забудьте сначала сделать его исполняемым.

Если кто-то использует хомяка и сочтет эту функцию удобной, это мой текущий рабочий код:

#!/bin/bash
file=/usr/local/bin/hamster-log
last=$(<$file)
activity=$(zenity --entry --title "Enter new activity name" --text "New activity name:" --entry-text "$last")
hamster start "$activity"
if [ ! -z "$activity" ]; then
    if [ -f "$file" ]; then
        echo "$activity" > "$file"
    fi
fi

Он находится в /usr/local/bin/ папка. И в этой же папке находится файл hamster-log с разрешениями 777. Я использую Shortcut Super+H и для запуска этого скрипта и Super+Shift+H для остановки активности (команда hamster stop). Когда у меня будет больше времени, я буду продолжать работать над этим и обновлять код. Есть еще несколько функций, которые я хотел бы добавить.

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