"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Problem mit bash script in zshell

tinker 24.10.2019 - 11:57 2772 6
Posts

tinker

SQUEAK
Avatar
Registered: Nov 2005
Location: NÖ
Posts: 5226
Ahoi!
Ich hab grad folgendes Problem:

Ich verwende die zshell und es gibt ein bash script in dem das command "open" verwendet wird um einen Ordner im default file manager zu öffnen. In der bash is "open" aber als "This utility help you to start a program on a new virtual terminal (VT)." definiert. Also wechsel ich von der zshell in die bash, erstell mir ein alias auf "xdg-open" im bashrc und source bashrc, Läuft dann in der bash wie es soll. Also zurück in die zshell, wo das problem aber noch immer besteht. "bash -c 'open --help'" sagt mir noch immer "This utility help you to start a program on a new virtual terminal (VT).".

Terminal hab ich schon neu gestartet und aus- und wieder eingelogged auch.

Wo is mein Fehler?

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12083
Was gibt dir `type open` in der bash bzw. zsh?

(Ich gehe davon aus, dass deine ~/.bashrc beim Ausfuehren eines Kommandos via `bash -c "open ..."` gar nicht zur Anwendung kommt, aber glaube darueberhinaus, dass man das Problem vielleicht anders/besser loesen kann.)

`open` gibt es in dieser Form und Funktion uebrigens afaik nur unter OS X - vielleicht solltest du ds Skript fuer deine Umgebung lokal patchen, und es zur Verwendung von `xdg-open` zwingen?

tinker

SQUEAK
Avatar
Registered: Nov 2005
Location: NÖ
Posts: 5226
Zitat aus einem Post von COLOSSUS
Was gibt dir `type open` in der bash bzw. zsh?
"open is an alias for xdg-open" in der zsh und bash.

Zitat aus einem Post von COLOSSUS
(Ich gehe davon aus, dass deine ~/.bashrc beim Ausfuehren eines Kommandos via `bash -c "open ..."` gar nicht zur Anwendung kommt, aber glaube darueberhinaus, dass man das Problem vielleicht anders/besser loesen kann.)
Ich frag mich ja warum meine ~/.bashrc nicht zur Anwendung kommt. Aber ich bin grundsätzlich auch für andere bessere Lösungen offen.

Zitat aus einem Post von COLOSSUS
`open` gibt es in dieser Form und Funktion uebrigens afaik nur unter OS X - vielleicht solltest du ds Skript fuer deine Umgebung lokal patchen, und es zur Verwendung von `xdg-open` zwingen?
Ja, und das script kommt auch von dort.

Das heißt die beste Lösung wäre im script einfach das OS zu checken und unter Linux 'xdg-open' und OS X 'open' auszuführen? Oder gäbs da noch ne bessere Alternative?

Danke!

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12083
Zitat aus einem Post von tinker
"open is an alias for xdg-open" in der zsh und bash.

Und was gibt `bash -c 'type open'`?


Zitat aus einem Post von tinker
Ich frag mich ja warum meine ~/.bashrc nicht zur Anwendung kommt. Aber ich bin grundsätzlich auch für andere bessere Lösungen offen.

Eine Antwort auf diese Frage ist moeglich, aber schwierig :D Kleiner sachdienlicher Exkurs (aber fuer die Beantwortung deiner Frage nicht notwendigerweise hinlaenglich): https://mywiki.wooledge.org/DotFiles


Zitat aus einem Post von tinker
Ja, und das script kommt auch von dort.

D. h. du selbst verwendest es selbst auf beiden Plattformen?


Zitat aus einem Post von tinker
Das heißt die beste Lösung wäre im script einfach das OS zu checken und unter Linux 'xdg-open' und OS X 'open' auszuführen? Oder gäbs da noch ne bessere Alternative?

Jein. Ich wuerde eher pruefen, ob `xdg-open` vorhanden ist (z. B. via `type -p xdg-open`), dann, ob `open` vorhanden ist, und das jeweils (erst)gefundene ausfuehren - bzw. den Fehlerfall behandeln, wenn's gar nix gibt.

tinker

SQUEAK
Avatar
Registered: Nov 2005
Location: NÖ
Posts: 5226
Zitat aus einem Post von COLOSSUS
Und was gibt `bash -c 'type open'`?
open is /bin/open

Zitat aus einem Post von COLOSSUS
Eine Antwort auf diese Frage ist moeglich, aber schwierig :D Kleiner sachdienlicher Exkurs (aber fuer die Beantwortung deiner Frage nicht notwendigerweise hinlaenglich): https://mywiki.wooledge.org/DotFiles
Ich habs mir ja fast gedacht :D Danke für den link, werd ich mir mal anschaun.

Zitat aus einem Post von COLOSSUS
D. h. du selbst verwendest es selbst auf beiden Plattformen?
Nein, ich selbst verwende es nur unter Linux. Aber es liegt in nem git-repo und andere verwenden es auch unter macOS.

Zitat aus einem Post von COLOSSUS
Jein. Ich wuerde eher pruefen, ob `xdg-open` vorhanden ist (z. B. via `type -p xdg-open`), dann, ob `open` vorhanden ist, und das jeweils (erst)gefundene ausfuehren - bzw. den Fehlerfall behandeln, wenn's gar nix gibt.
Hört sich gut an, danke!

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12083
Zitat aus einem Post von tinker
open is /bin/open

Faszinierend! Auf welcher Distro bist du momentan, und welches Paket installiert das? (apt/dpkg/.deb: `dpkg -S /bin/open`; rpm: `rpm -qf /bin/open`)

tinker

SQUEAK
Avatar
Registered: Nov 2005
Location: NÖ
Posts: 5226
Ubuntu 18.04.3 LTS, Kernel 5.3.6-050306-generic

'dpkg -S /bin/open' sagt mir 'kbd: /bin/open'
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz