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
bash
shell-script
node.js
Alexander Mills
sumber
sumber
dirs=$(find . -maxdepth 1 -type d); [[ "${dirs[@]}" =~ ".nvm" ]] && printf "%s\n" "Success"
...Jawaban:
Melakukan:
[[ $PWD =~ ^$HOME/\.nvm/ ]]
memeriksa apakah$PWD
dimulai dengan direktori home Anda, diikuti dengan.nvm/
menggunakan Regex (=~
) pada[[
kata kunciJika demikian (
&&
) makaecho "In .nvm"
dijalankanJika Anda tidak memiliki
=~
dukungan (mis. Jika Anda menggunakan yang lamabash
), gunakan globbing sebagai gantinya:sumber