Я наткнулся на то, что я просто не могу понять. Следующая ситуация: я загрузил интерфейс python для управления Dropbox через командную строку (dropbox.py). Я положил этот файл в папке:Zsh/Bash: Путь не такой, какой он должен быть
/home/username1/.dropbox-dist/dropbox.py
Я сделал простой Баш скрипт в/USR/бен называется «раздаточным»:
#!/bin/bash
python /home/username1/.dropbox-dist/dropbox.py
Теперь, когда я запускаю это происходит следующее:
в WhereIs для файла:
[email protected]_remote /home/username1 # whereis dropbox
dropbox: /usr/bin/dropbox
Когда я запустить его:
[email protected]_remote /home/username1 # dropbox
zsh: no such file or directory: /home/username2/.dropbox-dist/dropboxd
Да. Он сообщает мне другое имя пользователя. Конкретно: я вошел в систему через SSH на этом linuxbox. На удаленной оболочке работает byobu. В byobu работает zsh. USERNAME2 равно пользователю, что я в настоящее время вошли в систему с моей локальной linuxbox, с которой я подключен:
[email protected]_local /home/username2 # ssh [email protected]_remote
То, как я связан.
Таким образом, должна быть переменная, которая была передана моей удаленной оболочке из моей локальной оболочки, и, похоже, python читает ее, но я не могу понять, что это будет.
Теперь .. посмотрите на это: Когда я ввожу команду, которую я написал в сценарий Баш:
[email protected]_remote /home/username2 # python /home/username1/.dropbox-dist/dropbox.py
Dropbox command-line interface
Так он работает, если я делаю это вручную. Другое дело: если я запускаю его на всем пути он тоже работает:
[email protected]_remote /home/username1 # /usr/bin/dropbox
Dropbox command-line interface
И это действительно работает, если я запустить его с помощью входа-оболочки, например, с помощью «Баш -l», а затем пытается запустить " раздаточная».
Это не работает, либо если изменить hashbang на «#!/USR/бен/ЗШ»
Любые идеи по этому поводу?
Ах! Спасибо! Теперь я вижу, что произошло. В моем zsh-conf есть псевдоним: , который выдает dropbox: aliased to /home/username2/.dropbox-dist/dropboxd – user2190489
В моей установке ** bash **, 'which' является внешней командой ('/usr/bin/which'), в то время как 'type' является встроенным, который делает то, что нужно @ user2190489. (Я не знаю, если 'which' встроено в ** zsh ** или нет.) –
@ Robᵩ' which' является встроенным в zsh, но почему это имеет значение? – wRAR