Mam cały folder poświęcony skryptom Pythona.
Mam dość robienia chmod na każdym nowym skrypcie Pythona, który piszę.
Czy istnieje sposób, aby każdy plik w moim folderze był wykonywalny, jeśli jest to skrypt Pythona?
Byłoby miło mieć skrypt, który sprawdza, ilekroć jest tworzony nowy skrypt .py, a jeśli jest nowy skrypt .py, sprawia, że jest on wykonywalny natychmiast.
- Używam Vima.
command-line
scripts
executable
chmod
Dominici
źródło
źródło
vim
lubemacs
wykonanie tego za Ciebie.Odpowiedzi:
Inną dobrą opcją jest Incron . Działa na inotify z określonymi warunkami dla danej lokalizacji.
Mogę powiedzieć, że obejrzyj ten folder, gdy zobaczysz plik utworzony, uruchom polecenie.
Tak jak próbka incrontab ...
Podobnie można użyć ścieżki / pliku jako argumentów skryptu bash, aby w
.py
razie potrzeby umożliwić filtrowanie według rozszerzeń.źródło
Sprawi, że wszystkie
.py
pliki w katalogu / path / to / python / scripts / dir będą wykonywalne .Nie opisuję automatycznego narzędzia. Może być możliwe posiadanie makra w twoim edytorze, które mogłoby to zrobić, ale nie w edytorze, którego używam. ;-)
źródło
*.py
. Zakładam również, że skrypty OP są własnością jego standardowego identyfikatora użytkownika, więc nie widzę takiej potrzebysudo
. Powodzenia wszystkim.Jako pierwszy krok możesz wypróbować to w
~/.vimrc
:chmod +x
nazwę pliku dla wszystkich.py
plików, gdy do nich piszesz. Patrząc na listę zdarzeń (:h events
), nie mogę znaleźć zdarzenia, w którym tworzony jest nowy plik, więc musiałem zadecydować o uruchomieniu za każdym razem, gdy jest zapisywany.Po pierwszym
chmod
zastosowaniu plik zostanie zmieniony ivim
wyświetli ostrzeżenie:Próbowałem kilku sztuczek, aby zrobić to
autoread
tylko dla tej zmiany, ale bez powodzenia. Będziesz musiał nacisnąć Enterdwa razy.źródło
Po zainicjowaniu poniższy skrypt automatycznie zmienia uprawnienia wszystkich plików danego typu (rozszerzenia) w katalogu (jeden raz). Następnie skrypt sprawdza katalog co 5 sekund pod kątem nowo dodanych plików i zmienia uprawnienia, jeśli plik jest danego typu (w tym przypadku
.py
plik)Jest kilka opcji: w tym przypadku, to sprawia, że nowo dodane pliki wykonywalne, ale inne działania są możliwe też, jak określono w linii:
command = "chmod +x"
. Dodatkowo możesz zdefiniować (zmienić), jakiego rodzaju pliki (rozszerzenia językowe) należy wykonać.Jak używać
Skopiuj poniższy skrypt do pustego pliku. Zapisz go jako
change_permission.py
i uruchom w tle za pomocą polecenia:Scenariusz
* Uwaga: jeśli potrzebujesz uprawnień sudo, po prostu uruchom skrypt za pomocą
sudo
źródło
Oto kilka informacji z kilkoma poleceniami, które mogą pomóc, sprawdź http://ss64.com/bash/syntax-permissions.html
Możesz użyć następującego skryptu nagłówka. Umieść
mkscript.sh
w swoim$PATH
. Wykonajmkscript.sh
z katalogu roboczego, w którym przechowywane są skrypty python. Skrypt tworzy użyteczne informacje nagłówkowe, tytułuje skrypt i umożliwia jego wykonanie, a następnie otwiera wybrany edytor; w twoim przypadku VIM.Zmodyfikowałem
mkscript.sh
, będzie produkować skrypty z rozszerzeniem Pythona*.py
Zmienna
${PYTHON_VERSION}
jest wywoływana, dlategoPYTHON_VERSION="/usr/bin/python --version"
została dodana do/etc/environment
pliku. Zajrzyj na https://help.ubuntu.com/community/EnvironmentVariablesźródło