AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

[schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

Ein Thema von Schwedenbitter · begonnen am 18. Mai 2017 · letzter Beitrag vom 18. Mai 2017
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#1

AW: [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

  Alt 18. Mai 2017, 18:52
Unabhängig vom eigentlichen Problem: Die Backticks sind echt nicht totzukriegen, wa? Bitte verzichtet auf Backticks! Die Dinger haben nur Nachteile: sie lassen sich nicht schachteln und sie sind viel zu leicht mit einfachen Anführungszeichen zu verwechseln (oder man übersieht sie komplett), und deren Eingabe is auch ... naja.

Stattdessen bieten sich die viel einfacher zu tippenden normalen Shellklammern an. Nebenbei müssen Leerzeichen in einem Pfad nicht zwingend escaped werden, Anführungszeichen funktioneren genauso (einfache oder doppelte spielt keine Rolle, solange keine Variablen innerhalb benutzt werden). Diese beiden Dinge zusammengebracht und der Befehl kann so aussehen:
Code:
screen $(wine "/irgendein pfad mit leerzeichen/programm.exe")
. Das ließe sich sogar schachteln, wenn man es will oder braucht, hier ein Sinnlosbeispiel:
Code:
screen $(ls -l $(which eine.exe))
Viel lesbarer, oder?

Grüße
Dalai
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

  Alt 18. Mai 2017, 20:23
<OT>
... Bitte verzichtet auf Backticks!
Alle andere ja, ich nicht. Ich editiere regelmäßig mit mc und dessen syntax highlight. Backticks haben den Charme, dass man wegen der schwarzen Markierung exakt sieht, wie lang ein Befehl ist und was genau drin steht.

Nebenbei müssen Leerzeichen in einem Pfad nicht zwingend escaped werden, Anführungszeichen funktioneren genauso (einfache oder doppelte spielt keine Rolle, solange keine Variablen innerhalb benutzt werden).
Ich habe keine Lust auf Streit und auch eigentlich überhaupt keine Zeit für sowas. Aber ich kann Dir - falls mir wieder welche über den Weg laufen - einige Befehle unter Linux per PM aufzeigen, bei denen das notwendig ist. Ich arbeite viel auf der Konsole unter openSUSE und da hat man mit <tab> immer escaped Leer- und Sonderzeichen drin. Warum sollte ich die nicht gleich nutzen?

Diese beiden Dinge zusammengebracht und der Befehl kann so aussehen:
Code:
screen $(wine "/irgendein pfad mit leerzeichen/programm.exe")
...
Mag eleganter aussehen. Aber bei Dollar, Klammer auf und zu muss man sich auch konzentrieren. Wer oft ein Backtick nutzt, dem geht die Eingabe leicht von der Hand - bei amerikanischen Tastaturen allemal.
</OT>
Angehängte Grafiken
Dateityp: png mc_editor.png (35,6 KB, 20x aufgerufen)
Alex Winzer

Geändert von Schwedenbitter (18. Mai 2017 um 20:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#3

AW: [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

  Alt 18. Mai 2017, 21:33
[OT]
Ich editiere regelmäßig mit mc und dessen syntax highlight. Backticks haben den Charme, dass man wegen der schwarzen Markierung exakt sieht, wie lang ein Befehl ist und was genau drin steht.
Das sieht man bei Subshellklarmmern ebenfalls, auch wenn ich zugebe, dass die Syntaxhervorhebung innerhalb dieser im MC fehlt. Aber das ist halt kein umfangreicher Editor sondern ein Dateimanager mit ein paar Editierfähigkeiten. Aber lassen wir das, denn ich verwende ihn ebenfalls täglich . Nano kann das übrigens für beide Varianten.

Zitat:
Aber ich kann Dir - falls mir wieder welche über den Weg laufen - einige Befehle unter Linux per PM aufzeigen, bei denen das notwendig ist.
Solange ein String in einfachen Anführungszeichen eingeschlossen ist, wird er so, wie er ist, übernommen. Da ist kein Escaping notwendig. Bei doppelten Anführungszeichen mag das anders aussehen, weil dort Variablenexpansion stattfindet.

Zitat:
Ich arbeite viel auf der Konsole unter openSUSE und da hat man mit <tab> immer escaped Leer- und Sonderzeichen drin. Warum sollte ich die nicht gleich nutzen?
Für die Completion lasse ich die ebenfalls stehen. Aber ich würde nie auf die Idee kommen, ein unübersichtliches und potentiell fehleranfälliges (z.B. weil unvollständig) Escaping in einem Skript zu benutzen. Richtig eklig wird das, wenn ein Pfad mit solchen escape-Backslashes in einer Zeile steht, dir ihrerseits wegen der Länge umgebrochen wird - ebenfalls mit Backslash. "Welcher Backslash gehört nun wohin?" muss man da erst überlegen.

Zitat:
Wer oft ein Backtick nutzt, dem geht die Eingabe leicht von der Hand - bei amerikanischen Tastaturen allemal.
Das stimmt. Aber man macht es Skripteinsteigern schwerer, wenn man nicht dazu sagt, dass es Backticks sind, welche Nachteile sie haben und dass sie ersetzbar sind.

[/OT]

Grüße
Dalai
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz