1
//init.sh

#!/usr/bin/env bash

export PATH="${HOME}/.pyenv/scripts:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

pyenv shell ammt-crawler

我想在 linux 命令行中运行 init.sh 文件
并确保执行 pyenv shell ammt-crawler 行。

但是当我刚刚放 ./init.sh 时,什么也没发生。
为什么要在linux中执行init.sh文件?

(ps)如果你能解释一下这个 init.sh 里面的 export , eval 是什么意思

4

2 回答 2

1

尝试为脚本添加执行权限:

chmod +x unit.sh

并尝试再次运行它。

于 2017-09-18T04:27:51.433 回答
1

注释以bash开头#,而不是//。此外,shebang ( #!/usr/bin/env bash) 必须位于文件的第一行才能生效。所以脚本应该是:

#!/usr/bin/env bash

# init.sh

export PATH="${HOME}/.pyenv/scripts:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

pyenv shell ammt-crawler

此外,如果您希望能够使用 just 执行它./init.sh,它需要是可执行的。运行此命令以使其可执行:

chmod +x init.sh
于 2017-09-18T04:51:08.890 回答