Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Hannu E K Nevalainen" <_garbage_collector_ AT telia DOT com> To: Subject: RE: "which" command does not expand "~" in path Date: Mon, 27 Sep 2004 19:23:34 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit In-Reply-To: X-IsSubscribed: yes you wrote: > On Mon, 27 Sep 2004, Sven Köhler wrote: > >>>> But is there any command that give's me the home for a given >>>> username? >>> >>> bash -c "echo ~username" >> >> Oh well, beside bash (and any other big programm called shell) >> >>> Or you could write one using the getpwnam() call (better yet, the >>> reentrant versions, getpwnam_r()), and submit it to, say, cygutils >>> (since sh-utils is no longer being actively developed). >> >> I just wondered how to write a "correct" shell-script that runs with >> /bin/sh, and it seems there is no way "shell-script"-way to figure >> out a user's homedir. > > You could try > > awk -F: "/^username:/"'{print $6}' < /etc/passwd > > (the pattern is in double quotes so that variable substitution can > occur, e.g., you could change "username" to "$1" in a shell script). > Igor -- $ u="Hannu";sed -nre "s/^$u.*:(.*):.*$/\1/p" ** mailing list preference; please keep replies on list ** -- printf("LocalTime: UTC+%02d\n",(DST)? 2:1); -- --END OF MESSAGE-- -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/