diff --git a/README.md b/README.md index c6154356..b2f66684 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ executable path to each of these using `pyenv which`, e.g. `pyenv which python2. (should display `$(pyenv root)/versions/2.5/bin/python2.5`), or `pyenv which python3.4` (should display path to system Python3). You can also specify multiple versions in a `.python-version` file, separated by newlines or any whitespace. +Lines starting with a `#` are ignored. ### Locating the Python Installation diff --git a/libexec/pyenv-version-file-read b/libexec/pyenv-version-file-read index ae24345c..214d1ef4 100755 --- a/libexec/pyenv-version-file-read +++ b/libexec/pyenv-version-file-read @@ -9,7 +9,7 @@ if [ -e "$VERSION_FILE" ]; then # Read the first non-whitespace word from the specified version file. # Be careful not to load it whole in case there's something crazy in it. IFS="${IFS}"$'\r' - words=($(cut -b 1-1024 "$VERSION_FILE" | sed 's/[[:space:]]*\([^[:space:]^[:space:]]*\).*/\1/')) + words=($(cut -b 1-1024 "$VERSION_FILE" | sed -n 's/^[[:space:]]*\([^[:space:]#][^[:space:]]*\).*/\1/p')) versions=("${words[@]}") if [ -n "$versions" ]; then diff --git a/test/version-file-read.bats b/test/version-file-read.bats index d31037c2..a7b184de 100644 --- a/test/version-file-read.bats +++ b/test/version-file-read.bats @@ -70,3 +70,15 @@ IN run pyenv-version-file-read my-version assert_success "3.3.5" } + +@test "skips comment lines" { + cat > my-version <