Ich habe einen ganzen Ordner für Python-Skripte.
Ich bin es leid, jedes neue Python-Skript, das ich schreibe, mit chmod zu bearbeiten.
Gibt es eine Möglichkeit, jede Datei in meinem Ordner ausführbar zu machen, wenn es sich um ein Python-Skript handelt?
Es wäre schön, ein Skript zu haben, das überprüft, wann immer ein neues .py-Skript erstellt wird, und wenn es ein neues .py-Skript gibt, kann es direkt vor Ort ausgeführt werden.
- Ich benutze Vim.
command-line
scripts
executable
chmod
Dominici
quelle
quelle
vim
oderemacs
zu tun.Antworten:
Eine weitere gute Option ist Incron . Es arbeitet an Inotify mit vorgebbaren Bedingungen für einen bestimmten Ort.
Also kann ich sagen, beobachten Sie diesen Ordner, wenn Sie eine Datei erstellt sehen, führen Sie einen Befehl aus.
Nur als Beispiel Incrontab ...
Man könnte den Pfad / die Datei auch als Argumente für ein Bash-Skript verwenden, damit es
.py
bei Bedarf nach Erweiterungen filtern kann.quelle
Macht alle aktuellen
.py
Dateien im Verzeichnis / path / to / python / scripts / dir ausführbar .Mir ist kein Auto-Tool bekannt, wie Sie es beschreiben. Möglicherweise befindet sich in Ihrem Editor ein Makro, mit dem dies möglich ist, jedoch nicht mit dem von mir verwendeten Editor. ;-)
quelle
*.py
. Ich gehe auch davon aus, dass die OPs-Skripte im Besitz seiner Standardbenutzer-ID sind, daher sehe ich keine Notwendigkeit dafürsudo
. Allen viel Glück.Als ersten Schritt können Sie dies in folgenden Schritten versuchen
~/.vimrc
:chmod +x
für alle.py
Dateien mit dem Dateinamen ausgeführt , wenn Sie darauf schreiben. Wenn:h events
ich mir die Liste der Ereignisse ( ) anschaue, kann ich kein Ereignis finden, bei dem eine neue Datei erstellt wird. Daher musste ich mich damit zufrieden geben, dass sie jedes Mal ausgeführt wird, wenn sie geschrieben wird.Beim erstmaligen
chmod
Anwenden von wird die Datei geändert und Sievim
werden darauf hingewiesen:Ich habe ein paar Tricks ausprobiert, um es
autoread
nur für diesen Wechsel zu schaffen, aber kein Glück. Sie müssen also Enterzweimal drücken .quelle
Nach dem Start ändert das folgende Skript automatisch die Berechtigungen aller Dateien eines bestimmten Typs (Erweiterung) in einem Verzeichnis (einmalig). Danach überprüft das Skript das Verzeichnis alle 5 Sekunden auf neu hinzugefügte Dateien und ändert die Berechtigungen, wenn die Datei vom angegebenen Typ ist (in diesem Fall eine
.py
Datei).Es hat ein paar Optionen: in diesem Fall macht es die neu hinzugefügten Dateien ausführbar, aber auch andere Aktionen sind auch möglich, wie in der Linie definiert:
command = "chmod +x"
. Außerdem können Sie festlegen (ändern), für welche Art von Dateien (Spracherweiterungen) die Aktion ausgeführt werden soll.Wie benutzt man
Kopieren Sie das folgende Skript in eine leere Datei. Speichere es als
change_permission.py
und starte es im Hintergrund mit dem Befehl:Das Drehbuch
* Hinweis: Wenn Sie Sudo-Berechtigungen benötigen, führen Sie einfach das Skript mit
sudo
quelle
Hier einige Informationen mit einigen Befehlen, die hilfreich sein könnten: http://ss64.com/bash/syntax-permissions.html
Sie können das folgende Header-Skript verwenden. Platzieren Sie
mkscript.sh
in Ihrem$PATH
. Führen Siemkscript.sh
das Programm aus dem Arbeitsverzeichnis aus, in dem die Python-Skripte gespeichert sind. Das Skript erstellt einige nützliche Header-Informationen, benennt das Skript und macht es ausführbar. Anschließend wird der ausgewählte Editor geöffnet. in deinem Fall VIM.Ich habe es modifiziert
mkscript.sh
, es wird Skripte mit der Python-Erweiterung erzeugen*.py
Die Variable
${PYTHON_VERSION}
heißt, wurde alsoPYTHON_VERSION="/usr/bin/python --version"
der/etc/environment
Datei hinzugefügt . Besuchen Sie https://help.ubuntu.com/community/EnvironmentVariablesquelle