如何在linux命令行中运行sh文件

时间:2017-09-18 04:23:30

标签: python linux shell revitpythonshell

//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中的导出,eval意味着什么

2 个答案:

答案 0 :(得分:0)

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

chmod +x unit.sh

然后再次尝试运行它。

答案 1 :(得分:0)

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

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

chmod +x init.sh