Komenda mysql nie została znaleziona po potoku

2

Zainstalowałem mysql z homebrew.

mysql --version
mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)

i

which mysql
/usr/local/bin/mysql

ale kiedy próbuję go użyć po fajce, pojawia się następujący błąd

unzip -p dump.sql.zip | mysql
zsh: command not found:  mysql

Dlaczego tak jest i jak mogę to naprawić?

Paul Vincent Beigang
źródło
1
Jaki jest błąd? Po drugie, mysql pobiera kilka argumentów, takich jak użytkownik, hasło (w stosownych przypadkach), baza danych itp. Wydaje się, że brakuje ich wielu.
Allan
Dodaj otrzymany komunikat o błędzie, aby pytanie mogło zostać ponownie otwarte.
nohillside
Dodałem komunikat o błędzie, był już w tytule pytania. Nie musisz dodawać mysql argumenty, jak wtedy mysql zostanie rozpoznany, zgłosi inny błąd.
Paul Vincent Beigang
2
Szczegóły są ważne. Jeśli naprawdę są dwie przestrzenie między nimi found: i mysql w komunikacie o błędzie nadal masz wciśnięty klawisz shift / opt / cokolwiek z wpisania znaku potoku po naciśnięciu spacji.
nohillside

Odpowiedzi:

5

Wcześniej masz dodatkową postać mysql to wygląda jak przestrzeń, ale nie jest przestrzenią. Musisz to naprawić przed uruchomieniem polecenia. Ten problem występuje po naciśnięciu klawisza spacji podczas trzymania klawisza Opcja klawisz.

$ # Option + Space
$ unzip -p dump.sql.zip | mysql
zsh: command not found:  mysql
$ # Regular Space
$ unzip -p dump.sql.zip | mysql
...
expected output
...

Inny przykład:

$ # Option + Space
$ echo "hi" | less
-bash:  less: command not found
$ # Regular Space
$ echo "hi" | less

hi
(END)

Inną opcją jest całkowite wyeliminowanie przestrzeni za rurą:

$ echo "hi" |less

hi
(END)

Opcja + Przestrzeń = cc2 aa0 (UTF-8)

Przestrzeń = Przestrzeń regularna

pixelomer
źródło
2
Podczas pisania |mysql rozwiązuje problem może być lepiej przyzwyczaić się do ponownego przesuwania shift / opt / cokolwiek po wpisaniu potoku i przed wpisaniem spacji.
nohillside
Czy to sprawia, że ​​postać wygląda jak przestrzeń?
pixelomer
2
Prawdziwa dodatkowa przestrzeń nie wyjaśnia komunikatu o błędzie, działającego cmd1 | cmd2 jest doskonale poprawną składnią powłoki. I tak, w zależności od ustawień klawiatury i ustawień regionalnych.
nohillside
2
Wyedytuję odpowiedź, aby uzyskać więcej informacji.
pixelomer
1

Zwróć uwagę na dodatkową przestrzeń podaną po „:” w pierwszym komunikacie o błędzie. Wynika to z używania znaku „przestrzeni opcji” zamiast normalnej przestrzeni. Twoje wyjście jest podobne do pierwszego z tych dwóch

[ Option Space before first missing command in pipe[1]

Tom Hallam
źródło