Sim, na verdade existe:
set . ~/Development{,/resources} ~
IFS=:; CDPATH="$*"
O parâmetro "$*"
special substitui o primeiro caractere em $IFS
entre cada um dos parâmetros posicionais. Portanto, se você set
e expandir os argumentos que deseja como argumentos separados, poderá preencher rapidamente os delimitadores apropriados conforme necessário na atribuição.
Se, como foi sugerido, você pode usar alguns ponteiros sobre como salvar / restaurar o valor de $IFS
, você pode fazer o seguinte:
CDPATH=$IFS
set . ~/Development{,/resources} ~
IFS=:${IFS+;IFS=\$CDPATH}
eval 'set "$*"; unset IFS'"
$IFS; CDPATH=\"
Às vezes um pouco de malabarismo vale a pena para manter o ambiente limpo - e quando um parâmetro afeta o ambiente, esteja ele configurado ou não - e de maneiras diferentes dependendo - provavelmente é melhor tomar cuidado.
Ainda assim - tais precauções só são realmente necessárias em um ambiente no qual você pode garantir nenhum controle duradouro - em outras palavras, você não precisa fazer isso em seus próprios arquivos rc. Em um contexto como esse, você está praticamente garantido o controle permanente - e assim você pode (e deve ) definir os parâmetros especiais do shell de acordo com você.