Hem zsh hem de bash tarafından kaynaklı bir dosyada aşağıdaki kodu var.
if test $SHELLNAME = zsh ; then
lss() { l -l ${1:-.}/*(s,S,t); }
laf() { l ${1:-.}/.*(.); }
lad() { l -d ${1:-.}/.*(/); }
lsw() { l -ld ${1:-.}/.*(R,W,X.^ND/); }
fi
SHELLNAME
bir zsh
kabuk zsh ise ve bash
kabuk darbe ise.
Yukarıdaki işlevlerin her biri zsh ile çalışan, ancak bash ile çalışmayan kod içerir.
Bu dosyayı kaynakladığımda, aşağıdaki hataları alıyorum.
bash: <filename>: line 67: syntax error near unexpected token `('
bash: <filename>: line 67: ` lss() { l -l ${1:-.}/*(s,S,t); }'
Şu anda eval
bash'ın sözdizimi denetimini atlamak için kullanıyorum .
if test $SHELLNAME = zsh ; then
# Using eval makes sure bash can't try to syntax-check these functions.
eval 'lss() { l -l ${1:-.}/*(s,S,t); }'
eval 'laf() { l ${1:-.}/.*(.); }'
eval 'lad() { l -d ${1:-.}/.*(/); }'
eval 'lsw() { l -ld ${1:-.}/.*(R,W,X.^ND/); }'
fi
Bu soruna daha iyi bir çözüm var mı? (belki de kullanmayan eval
)