С bash
Первый подход - используйте подстановку параметров
#use command substitution to set command output into variable var
var=$(ypmatch $EndUser auto_home)
#strip out the first :
var=${var/:}
#replace all instances of / with \
var=${var//\//\\}
echo $var
rtp1-filer-ns\homedir-private\private007\user
Второй подход - используйте массивы
# Set path components into array frags
IFS=/ read -a frags < <(ypmatch $EndUser auto_home)
# Strip ":" off rtp1-filer-ns
frags[0]="${frags[0]%:}"
# Set IFS to \ to print frags \-separated
echo "$(IFS=\\ ;printf '%s\n' "${frags[*]}";)"
rtp1-filer-ns\homedir-private\private007\user
Если вы используете MacBook с TouchID, вы можете настроить SSH sudo с Mac TouchID (отпечатком пальца, 2FA)
У меня сработало, используя sshpass:
#!/bin/bash
PASS="Password"
COMMAND="/tmp/test.sh"
USER="USER"
HOST="1.2.3.4"
sshpass -p $PASS ssh -t $USER@$HOST "echo \"$PASS\" |sudo -S $COMMAND"