Problem mit bash script in zshell
tinker 24.10.2019 - 11:57 2772 6
tinker
SQUEAK
|
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
AdministratorGNUltra
|
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
|
Was gibt dir `type open` in der bash bzw. zsh? "open is an alias for xdg-open" in der zsh und bash. (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. `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
AdministratorGNUltra
|
"open is an alias for xdg-open" in der zsh und bash. Und was gibt `bash -c 'type open'`? 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 Kleiner sachdienlicher Exkurs (aber fuer die Beantwortung deiner Frage nicht notwendigerweise hinlaenglich): https://mywiki.wooledge.org/DotFilesJa, und das script kommt auch von dort. D. h. du selbst verwendest es selbst auf beiden Plattformen? 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
|
Und was gibt `bash -c 'type open'`? open is /bin/open Eine Antwort auf diese Frage ist moeglich, aber schwierig Kleiner sachdienlicher Exkurs (aber fuer die Beantwortung deiner Frage nicht notwendigerweise hinlaenglich): https://mywiki.wooledge.org/DotFiles Ich habs mir ja fast gedacht Danke für den link, werd ich mir mal anschaun. 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. 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
AdministratorGNUltra
|
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
|
Ubuntu 18.04.3 LTS, Kernel 5.3.6-050306-generic
'dpkg -S /bin/open' sagt mir 'kbd: /bin/open'
|