Saya hanya ingin bertanya apakah ada perintah yang akan berfungsi pada shell umum (bash, dash, kornshell)? Seharusnya memeriksa apakah line variabel berisi bagian mana pun dari jalur.
if [[ $line =~ "$PWD"$ ]] ;then
Jawaban yang Diterima:
Ya, versi bash terbaru dapat melakukan ini:
$ pwd
/home/terdon
$ line="I'm in /home/terdon"
$ [[ "$line" =~ "$PWD"$ ]] && echo yes
yes
Sintaks yang sama berfungsi di zsh dan ksh tetapi tidak di tanda hubung. Sejauh yang saya tahu, dash tidak memiliki kemampuan seperti itu.
Perhatikan bahwa regex Anda memeriksa apakah variabel $line berakhir dengan $PWD . Untuk memeriksa apakah $PWD cocok di mana saja di $line , hapus $ :
$ line="I'm in /home/terdon, are you?"
$ [[ "$line" =~ "$PWD" ]] && echo yes
yes