URL: https://www.overclockers.at/linux/problem-mit-bash-script-in-zshell_254584/page_1 - zur Vollversion wechseln!
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?
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?
"open is an alias for xdg-open" in der zsh und bash.Zitat aus einem Post von COLOSSUSWas gibt dir `type open` in der bash bzw. zsh?
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(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.)
Ja, und das script kommt auch von dort.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?
Zitat aus einem Post von tinker"open is an alias for xdg-open" in der zsh und bash.
Zitat aus einem Post von tinkerIch frag mich ja warum meine ~/.bashrc nicht zur Anwendung kommt. Aber ich bin grundsätzlich auch für andere bessere Lösungen offen.
Kleiner sachdienlicher Exkurs (aber fuer die Beantwortung deiner Frage nicht notwendigerweise hinlaenglich): https://mywiki.wooledge.org/DotFilesZitat aus einem Post von tinkerJa, und das script kommt auch von dort.
Zitat aus einem Post von tinkerDas 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?
open is /bin/openZitat aus einem Post von COLOSSUSUnd was gibt `bash -c 'type open'`?
Ich habs mir ja fast gedachtZitat aus einem Post von COLOSSUSEine Antwort auf diese Frage ist moeglich, aber schwierigKleiner sachdienlicher Exkurs (aber fuer die Beantwortung deiner Frage nicht notwendigerweise hinlaenglich): https://mywiki.wooledge.org/DotFiles
Danke für den link, werd ich mir mal anschaun.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 COLOSSUSD. h. du selbst verwendest es selbst auf beiden Plattformen?
Hört sich gut an, danke!Zitat aus einem Post von COLOSSUSJein. 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.
Zitat aus einem Post von tinkeropen is /bin/open
Ubuntu 18.04.3 LTS, Kernel 5.3.6-050306-generic
'dpkg -S /bin/open' sagt mir 'kbd: /bin/open'
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026