Am besten organisieren Sie sh / bash / python / etc. Skripte

2532
badp

Wie organisieren Sie die sh / bash / python-Skripts, die Sie auf Ihrem System sammeln und schreiben?

11

12 Antworten auf die Frage

7
ext

Ich habe alle diese Skripte in ~ / bin, was auch ein svn ist, das für alle Skripte arbeitet, die ich häufig auf mehreren Computern verwende. Es enthält auch Teile meiner zsh-Konfiguration wie Aliase und Umgebungsvariablen.

3

Kommt auf den Zweck des Skripts an. Ich baue meine in der Regel zwischen zwei Orten auf. Entweder ~ / Werkzeuge für ernsthafte Dinge, die ich regelmäßig wiedereins nutze, oder ~ / Spielplatz / [Name der Funktion, mit der ich spiele].

3
dsm

Ich habe ein ~ Code-Verzeichnis mit einem Unterverzeichnis für jede Sprache, die ich verwende, und in meinem .bashrc habe ich eine Anweisung, jeden von ihnen in meinen $ PATH zu schreiben. Zum Beispiel:

dsm@localhost:~ $ cat .bashrc ... export PATH="$( find /home/dsm/code -mindepth 1 -maxdepth 1 -type d -print\ | perl -ne 'chomp; print"$:";' )$" ; ... dsm@localhost:~ $ 
Ich benutze lang als zweiten (aber obligatorischen) Pfad. IE: `/ home / $ user / code / $ appname / $ lang /`. Einige meiner Projekte verwenden mehrere Teile, da sie zwangsläufig in Ordner aufgeteilt werden mussten. Für Code-Müll stecke ich es einfach in / home / $ user / test / $ etwas. erm3nda vor 9 Jahren 0
2
Matt

Wie alle anderen hier, gehe ich mit den ~/binmeisten Skripten und lasse projektspezifische Dinge unter ~/projects/whatever.

2

Was ich mache ist folgendes:

Habe / home / mein name / Skripte /

Ich habe alle meine Skripte dort abgelegt (klassifiziert in Verzeichnisse nach ihrer Funktion / ihrem Projekt). Das Beste daran ist, dass die gesamte / home / mein-Name / Scripts / versioniert ist (mit SVN). Auf diese Weise kann ich meine Änderungen ändern und trotzdem zurückschauen.

Damit alle Apps dies erkennen können, können Sie versuchen, den Pfad zu / etc / profile (für bash) hinzuzufügen.

in / etc / profile, letzte Zeile, hinzufügen

export PATH=$:/home/myname/Scripts/ 
2
Phoshi

Ich behalte mein gesamtes Entwicklungsmaterial unter user \ dev, das mit meinem Dropbox-Ordner verknüpft ist, um alles zu sichern. (ok, ich habe gelogen, das meiste grafische Zeug ist dev\..\graphicsdrin, um die Dropbox-Nutzung für Dinge zu reduzieren, die nicht so oft gesichert werden müssen.)

Skripte bleiben in dev, und wenn ich sie oft benutze, werde ich ihnen etwas vorschreiben, anstatt alles auf meinem Weg zu haben. ("Alias" bezieht sich hier auf "doskey", das ich mit einem Python-Skript automatisiert habe, das ich als Alias ​​"alias").

1
badp

Momentan speichere ich alles in einem Ordner in meinem Home-Verzeichnis ~ / sh. Ich habe es in .bashrc (und .zshrc zum PATH hinzugefügt, da ich beide benutze.)

Der Fehler ist, dass Anwendungen, die nicht von einem Terminal wie dem X-Server gestartet werden, den geänderten Wert von PATH nicht übernehmen. Ich bin dann gezwungen, "sh /" vor dem Dateinamen zu setzen, wenn ich diese Skripts über die grafische Benutzeroberfläche starte.

1
perimosocordiae

Die meisten Skripts, die ich schreibe, sind spezifisch für ein bestimmtes Projekt, daher lasse ich sie einfach im Verzeichnis für dieses Projekt. Sie müssen sie keinem PFAD hinzufügen, und Sie können sich leicht daran erinnern, wozu sie bestimmt sind.

Für globale Skripte hingegen klingt ein ~ / sh-Verzeichnis wie ein Gewinner.

1

Unter Windows können Sie systemweite Umgebungsvariablen entweder für alle Benutzer oder für einen bestimmten Benutzer festlegen.

Das bedeutet, dass beim Starten eines Programms die von Ihnen festgelegten Umgebungsvariablen bekannt sind. Natürlich können Sie auch die Umgebungsvariablen eines anderen Prozesses wie CMD festlegen. In diesem Fall kennen nur die Programme, die von diesem Prozess gestartet werden, diese Variablen.

Ich kenne keine Möglichkeit unter Linux, systemweite Umgebungsvariablen für bestimmte Benutzer festzulegen, aber es gibt eine Möglichkeit, systemweite Umgebungsvariablen für alle Benutzer festzulegen.

Sie können den gewünschten Wert in diese Datei schreiben: / etc / environment

Die in dieser Datei festgelegten Werte werden von allen Programmen für alle Benutzer erkannt.

Sie können 'man pam_env' ausführen, um weitere Informationen über den Dämon zu erhalten, der diese Datei tatsächlich verarbeitet.

Ich hoffe es hilft,

Jonathan Orlev

Das Problem ist, dass dies eine systemweite Änderung ist. Nur ich und root haben Zugriff auf ~ / sh; Ich würde mich lieber nicht mit Roots PATH herumschlagen, da dies System-Skripte beschädigen könnte. badp vor 16 Jahren 0
Ich glaube, dass "systemweite Umgebungsvariablen für bestimmte Benutzer" ein Oxymoron ist. Es gibt nur System * oder * Benutzervariablen. jiggunjer vor 8 Jahren 0
1
antik

Ich behalte alle meine häufig verwendeten Skripts in ~ / scripts und habe mein / etc / profile so konfiguriert, dass dieser Ordner für alle Benutzer in meinem Pfad enthalten ist.

if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$" else PATH="/usr/local/bin:/usr/bin:/bin:$" fi  PATH="$:~/scripts"