Dlaczego tak
W bash przypisanie zapisuje się bez spacji wokół znaku = i bez znaku $ przed nazwą; znak $ stosuje się dopiero przy odczycie wartości, np. echo $katalog. Wiersz ze spacjami powłoka potraktuje jako wywołanie polecenia o nazwie katalog z argumentami, co kończy się błędem „command not found”. Zapis set katalog=… pochodzi z plików wsadowych cmd, a w bash ustawia parametry pozycyjne.