Đặt đường dẫn cho Pyenv
Tôi đang cố gắng đặt đường dẫn tải cho Pyenv trong .bashrctệp máy chủ của mình .
Tôi đang làm theo hướng dẫn này , nơi nó yêu cầu chúng tôi đặt thành pyenvđường dẫn tải
Tuy nhiên, trong .bashrctệp của tôi , tôi đã thấy các lệnh dưới đây
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)"
fi
Và nó khác gì so với những điều đã được cung cấp trong bài hướng dẫn được chia sẻ ở trên?
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
Tôi có thể biết if...fikhối làm gì trong đoạn mã được hiển thị ở trên không?
Trả lời
Nó chủ yếu là cú pháp của bash.
# 1.
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH"
tương đương với
export PATH="$HOME/.pyenv/bin:$PATH"
như trong trường hợp đầu tiên, bạn đang khai báo một biến được đặt tên PYENV_ROOTsau đó sử dụng nó.
# 2.
ifvà filà cách bạn viết câu lệnh if trong bash.
# 3.
command -v pyenvđược sử dụng để thực thi một lệnh ( pyenv) trong trường hợp này, -vtùy chọn in tên đường dẫn, ví dụ:
$ command -v python
/usr/bin/python
if command -v pyenv 1
có nghĩa là nếu lệnh pyenvđược tìm thấy, thì hãy thực thieval "$(pyenv init -)"
#4.
Ở đây, >/dev/null 2>&1;được sử dụng để loại bỏ đầu ra. đọc thêm về nó câu trả lời này .
Do đó, hai khối mã gần như giống nhau, điểm khác biệt duy nhất là: khối đầu tiên có một if-blockvà khối thứ hai có thêm một lệnh eval "$(pyenv virtualenv-init -)".