스크립트에서 :를 제거한 다음 인쇄물에서 /를 \로 복원해 보십시오.
현재 Linux 경로를 표시해야 합니다. 홈 디렉토리는 다음 위치에 있습니다: rtp1-filer-ns:/homedir-private/private007/user
사용자가 Windows 경로를 홈 디렉터리(\rtp1-filer-ns\homedir-private\private007\user)로 쉽게 설정할 수 있도록 다시 포맷하고 싶습니다.
현재 스크립트 부분은 다음과 같습니다
echo "쉘은 다음과 같습니다: `ypmatch $EndUser passwd | awk -F\: '{ print $7 }'`" 에코"" echo "홈 디렉터리는 다음 위치에 있습니다:" ypmatch $EndUser auto_home 에코"" echo "홈 디렉터리의 Windows 경로:" echo "\\\\`ypmatch $EndUser auto_home | awk -F':' '{print $1}'`\\$EndUser"
인쇄해 주세요:
기본 디렉터리는 다음 위치에 있습니다. rtp1-filer-ns:/homedir-private/private007/user Windows 홈 디렉터리 경로: \\rtp1-filer-ns\사용자
sed /awk와 같은 것을 사용할 수 있다고 가정하면 $EndUser는 정의된 변수입니다.
답변1
그리고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