Bandingkan jalur dengan rumah pengguna dan tentukan apakah direktori pertama adalah ".nvm"

1

Jadi saya memiliki jalur ini sebagai direktori kerja saya sekarang:

/home/oleg/.nvm/versions/node/v7.2.1/lib/node_modules

Menggunakan skrip bash, saya ingin menentukan apakah direktori ini berada di dalam direktori home pengguna saya dan jika demikian, periksa juga apakah

/home/$USER/<dir> ==? /home/$USER/.nvm

Dengan kata lain, mencari untuk memeriksa apakah direktori pertama di jalur di bawah rumah pengguna saya, bernama ".nvm".

Apa cara terbaik untuk melakukan ini? (Idealnya ini juga bisa berjalan di MacOS).

Yang benar-benar perlu saya lakukan adalah memeriksa apakah

// pseudobash:

assert(String($PWD).startsWith("$HOME/.nvm"))

tetapi melakukan itu di bash, tidak yakin

Alexander Mills
sumber
1
dirs=$(find . -maxdepth 1 -type d); [[ "${dirs[@]}" =~ ".nvm" ]] && printf "%s\n" "Success"...
jasonwryan

Jawaban:

1

Melakukan:

[[ $PWD =~ ^$HOME/\.nvm/ ]] && echo "In .nvm"
  • [[ $PWD =~ ^$HOME/\.nvm/ ]]memeriksa apakah $PWDdimulai dengan direktori home Anda, diikuti dengan .nvm/menggunakan Regex ( =~) pada [[kata kunci

  • Jika demikian ( &&) maka echo "In .nvm"dijalankan

Jika Anda tidak memiliki =~dukungan (mis. Jika Anda menggunakan yang lama bash), gunakan globbing sebagai gantinya:

[[ $PWD = $HOME/.nvm/* ]] && echo "In .nvm"
heemayl
sumber