Schau dir deinen QSH-Aufruf genau an.
QSH CMD('mkdir -p /.....')
Wenn du die in einer variablen zusammenbaust, darfst du ggf. keine Hochkomma verwenden, da dann der gesamte Ausdruck als ein Kommando interpretiert wird.

Also
chgvar &qsh ('mkdir -p ' *cat &MyDir) <= Keine Hochkommas im Kommando!
qsh cdm(&qsh)

Anders sieht es natürlich mit Leerzeichen in Pfaden und Namen aus.
Die QSH kann aber auch Anführungszeichen auswerten:

mkdir "/Dir/Mit Leerzeichen"