Jen jsem se chtěl zeptat, zda existuje nějaký příkaz, který by fungoval na běžných shellech (bash, dash, kornshell)? Má zkontrolovat, zda je line
obsahuje jakoukoli část cesty.
if [[ $line =~ "$PWD"$ ]] ;then
Přijatá odpověď:
Ano, nejnovější verze bash to umí:
$ pwd
/home/terdon
$ line="I'm in /home/terdon"
$ [[ "$line" =~ "$PWD"$ ]] && echo yes
yes
Stejná syntaxe funguje v zsh a ksh, ale ne v dash. Pokud vím, dash takové schopnosti nemá.
Všimněte si, že váš regulární výraz kontroluje, zda proměnná $line
končí s $PWD
. Chcete-li zkontrolovat, zda $PWD
odpovídá kdekoli v $line
, odstraňte $
:
$ line="I'm in /home/terdon, are you?"
$ [[ "$line" =~ "$PWD" ]] && echo yes
yes