awkвсегда пытается интерпретировать $<something>
как значение поля (, например.$0
-вся запись,$3
-третье поле,$NF
-последнее значение поля)
Передать имя каталога через переменную:
awk -v dir="$TRANSDIR" '/FILE-HDRPQ/{x=substr ($0,11,6)}
NR>1{print $0 > dir"/"x"_prchgrpt.txt";}' "$TRANSDIR/$prcfile"
Попробуйте без -i, и переменные должны пройти для вас.
Если это не сработает, вы можете попросить их указать переменные в командной строке? Возможно, это не идеально, но это дало бы пользователям необходимую гибкость.
ie. sudo -i -u joe SUDO_GID=4361 SUDO_UID=4361 SUDO_USER=rbhanot /bin/ksh
Если это слишком сложно для запоминания пользователями, вы можете добавить для него псевдоним в их профиль.bash _.
ie. alias myroot="sudo -i -u joe SUDO_GID=4361 SUDO_UID=4361 SUDO_USER=rbhanot /bin/ksh"
Затем они просто набирают «myroot», и он запускает команду sudo, как написано.