Mein Code zum Erstellen eines ausführbaren Skripts
touch script.sh && echo "echo 'Hello World'" > script.sh && sudo chmod +x script.sh
command-line
scripts
Schein Fiorin
quelle
quelle
sudo
sehr sparsam zu verwenden. Es kann gefährlich sein, sich daran zu gewöhnen, es herumzuwerfen. In diesem Fall besitzen Sie das von Ihnen erstellte Skript, sodass Sie mit den Berechtigungen nach Belieben arbeiten können, ohne dass ein Sudo erforderlich ist.Antworten:
Sie können den gesamten
touch
Befehl weglassen und müssen ihn nicht verwendensudo
. Um die Befehlszeile verkürzt weitere können Sie mitbash
Geschichte Erweiterung dem Dateinamen das zweite Mal speichern, und lassen Sie unnötigen Leerzeichen:Die Verlaufserweiterung wird
!#:3
durch das vierte Wort in der aktuellen Befehlszeile ersetzt, in Ihrem Fall als Dateinamescript.sh
. Dies muss natürlich angepasst werden, wenn Sie den ersten Befehl ändern, z.Beachten Sie, dass ein gültiges Skript einen Shebang benötigt :
Wenn Sie diese Befehlskette häufiger benötigen, empfehle ich , eine Funktion zu definieren . Auf diese Weise müssen Sie nur den Funktionsnamen eingeben . Ein ähnlich anpassungsfähiger - wenn auch längerer - Weg ist die Verwendung einer Variablen, die den Dateinamen enthält:
Wenn Ihr Dateiname Sonderzeichen enthält, vergessen Sie nicht, diese richtig zu zitieren .
quelle
Der
install
Befehl (Teil des GNU coreutils zusammen mitcp
,mv
,rm
, etc.) , eine Datei kopieren , während auch das Eigentum und das Festlegen von Berechtigungen und die Schaffung von übergeordneten Verzeichnissen wie nötig. Standardmäßig wird die neue Datei ausführbar. Es versteht '-
' nicht,/dev/stdin
kann aber stattdessen verwendet werden:In der obigen Beschreibung wird eine ' here-Zeichenfolge ' verwendet, um den Text auf stdin bereitzustellen, der etwas kürzer ist als das Einleiten. Die Argumente,
echo
die nicht in Anführungszeichen gesetzt werden müssen, es sei denn, sie enthalten Zeichen mit besonderer Bedeutung.quelle
install <(echo echo Hello World) script.sh
Ich bevorzuge es
cat
für Aufgaben wie diese zu verwenden:quelle
Sie können auch das gesamte chmod weglassen und stattdessen umask vor dem Echo verwenden. Sollte Ihnen ein paar Bytes ersparen. Shebang ist optional, solange Sie Befehle verwenden, die von jeder Shell verstanden werden (hauptsächlich Bourne und C).
quelle
umask
standardmäßig ein ausführbares Bit zu setzen ...