スクリプトから:を削除してから、印刷物から/を\に復元してみてください。
現在の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
2番目の方法 - 配列の使用
# 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