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