Eu acredito que você precisa de variável temporária (ou uma função). Se $TEST não existir, será expandido para nada e $test_or conterá apenas 1 . Seria bom ter uma maneira real de fazer isso, mas atualmente a sintaxe é um problema, e não parece ser realmente necessário para a maioria das finalidades.
set test_or $TEST 1
echo $test_or[1]
Além disso, se tudo o que você deseja é modificar $TEST , se ele ainda não existir, use set -q .
set -q TEST; or set TEST 1
echo $TEST