Я недавно начал использовать Linux, и я хочу создать сценарий, который сделает следующее:
Как я могу записать сценарий, который сделает это и что я могу звонить от какого-либо терминала, не имея необходимость к его полному пути? Таким образом, я хочу просто ввести, например, gen-work-plan и не/usr/home/document/gen-work-plan...
Кто-либо знает, как я могу сделать это?
Не мог сопротивляться регистрации ответа...
Для создания файла с текущей датой как заголовок и как, заголовок внутри проводил бы одну или две строки. Однако, если Вы хотите:
... это будет проводить несколько строк больше, чем это.
Сценарий ниже желания:
добавьте текущую дату к файлу, как:
Workplan 12-12-12
откройте файл с gedit
, ожидайте окна, чтобы появиться (!), переместить окно в верхний левый угол, изменить размер его к 50% (шириной), 100% (высотой)
#!/usr/bin/env python3
import time
import subprocess
import os
import time
# --- add the absolute path to the directory where you'd like to store the Workplans
filedir = "/home/jacob"
# ---
curr = "Workplan "+time.strftime("%d-%m-%Y"); out = curr+".txt"
file = os.path.join(filedir, out)
# check for the file to exist (you wouldn't overwrite it)
if not os.path.exists(file):
# write "Workplan" + date to the file
open(file, "wt").write(curr)
# open the file with gedit
subprocess.Popen(["gedit", file])
# wait for the window to appear, move/resize it
t = 0
while t < 20:
t += 1; time.sleep(1)
wlist = subprocess.check_output(["wmctrl", "-l"]).decode("utf-8")
if out in wlist:
w = [l.split()[0] for l in wlist.splitlines() if out in l][0]
for cmd in [["xdotool", "windowmove", w, "0", "0"],
["xdotool", "windowsize", w, "47%", "100%"]]:
subprocess.call(cmd)
break
Для сценария нужны оба xdotool
и wmctrl
:
sudo apt-get install xdotool wmctrl
workplan
(никакое расширение!) в ~/bin
. Создать ~/bin
если это еще не существует. Сделайте исполняемый файл сценария.В заголовке сценария, набор (абсолютный!) соединяют каналом туда, где Вы были бы lioke для хранения планов работы:
# --- set the abs. path to where you'd like to store the "Workplans"
filedir = "/home/jacob/Bureaublad"
# ---
Выйдите из системы ands въезжают задним ходом, выполняют команду просто:
workplan
Для создания файла в Python мы можем просто использовать:
open("file", "wt").write("sometext")
для перемещения и изменения размеров однако, мы должны ожидать окна для появления путем проверки, появляется ли окно в выводе команды:
wmctrl -l
в сценарии:
while t < 20:
t += 1; time.sleep(1)
wlist = subprocess.check_output(["wmctrl", "-l"]).decode("utf-8")
if out in wlist:
Затем, после того как окно появилось, мы отделяем идентификатор окна (сначала строка в строках в выводе wmctrl -l
), переместите окно в верхнее левое, и измените размер его:
w = [l.split()[0] for l in wlist.splitlines() if curr in l][0]
for cmd in [["xdotool", "windowmove", w, "0", "0"],
["xdotool", "windowsize", w, "47%", "100%"]]:
subprocess.call(cmd)
break
Что-то как:
#!/bin/bash
today=$(date "+%Y-%m-%d")
echo "Work Plan $today" > work_plan_"$today"
gedit work_plan_"$today"
не забывают делать это исполняемым файлом с chmod +x gen-work-plan
.
Для выполнения его без пути любой добавляет каталог, содержащий документ на получение к Вашему $PATH
в ~/.bashrc
(рекомендуемый для безопасности):
export PATH=$PATH:_Location_of_the_file_
Или символьная ссылка это в /usr/bin
:
ln -s _location_/gen-work-plan /usr/bin/gen-work-plan
Вот простой сценарий удара, который я использовал бы
#!/bin/bash
dat=$(date "+%Y-%m-%d")
touch work_plan_$dat
echo "Work Plan $dat" > work_plan_$dat
if [ -f work_plan_$dat ]; then
echo "Successfully created file work_plan_$dat"
fi
gedit work_plan_$dat
Для запущения этого скрипта без его пути, его местоположение должно быть включено в $PATH
переменная среды. Можно ли сделать это с этой строкой
PATH=/an/example/path:"$PATH"
, можно ли хотеть добавить эту строку к Вашему ~/.bashrc
файл
ИЛИ
, можно ли создать символьную ссылку с этой командой
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
, после этого удостоверяются, что файл является исполняемым файлом, при необходимости, выполните следующие кредиты команды
chmod +x /full/path/to/your/file
к c0rp для этого ответа https://источник askubuntu.com/users/164083/c0rp
, посмотрите ссылку ниже