我偶然发现了一些我无法弄清楚的东西。以下情况:我通过命令行(dropbox.py)下载了python前端来控制dropbox。我把这个文件放在文件夹中:
/home/username1/.dropbox-dist/dropbox.py
我在 /usr/bin 中创建了一个名为“dropbox”的简单 bash 脚本:
#!/bin/bash
python /home/username1/.dropbox-dist/dropbox.py
现在,当我运行它时,会发生以下情况:
文件的 whereis:
root@linux_remote /home/username1 # whereis dropbox
dropbox: /usr/bin/dropbox
当我运行它时:
root@linux_remote /home/username1 # dropbox
zsh: no such file or directory: /home/username2/.dropbox-dist/dropboxd
是的。它告诉我另一个用户名。具体来说:我在这个 linuxbox 上通过 SSH 登录。在远程外壳上有 byobu 正在运行。在 byobu 中运行 zsh。Username2 等于我当前在本地 linuxbox 上登录的用户,我与之连接:
username2@linux_local /home/username2 # ssh username1@linux_remote
我就是这样连接的。
所以必须有一个变量从我的本地 shell 传递给我的远程 shell,python 似乎可以读取它,但我不知道它会是哪个。
现在..看一下:当我输入我写入 bash 脚本的命令时:
username2@linux_remote /home/username2 # python /home/username1/.dropbox-dist/dropbox.py
Dropbox command-line interface
所以如果我手动执行它就会运行。另一件事:如果我用整个路径运行它,它也可以:
root@linux_remote /home/username1 # /usr/bin/dropbox
Dropbox command-line interface
如果我通过 login-shell 运行它,它确实有效,例如使用“bash -l”然后尝试运行“dropbox”。
如果我将 hashbang 更改为“#!/usr/bin/zsh”,它也不起作用
对此有什么想法吗?