From 54ea66d96c7e6b83eb878def5f4565e025ee3692 Mon Sep 17 00:00:00 2001 From: rillig Date: Wed, 24 Aug 2005 21:51:10 +0000 Subject: Added a code snippet that demonstrates how to set the $@ array to the lines printed by a shell command. In contrast to the read(1) shell utility, there are no problems when the output contains backslashes. --- mk/scripts/shell-lib | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'mk') diff --git a/mk/scripts/shell-lib b/mk/scripts/shell-lib index 1d8cb95ac40..23a45cd4876 100644 --- a/mk/scripts/shell-lib +++ b/mk/scripts/shell-lib @@ -1,4 +1,4 @@ -# $NetBSD: shell-lib,v 1.2 2004/09/21 15:14:08 jlam Exp $ +# $NetBSD: shell-lib,v 1.3 2005/08/24 21:51:10 rillig Exp $ # # Copyright (c) 2004 The NetBSD Foundation, Inc. # All rights reserved. @@ -383,3 +383,14 @@ fqueue_is_empty() return 1 fi } + +###################################################################### +# $setargs_from_cmd +# Run $cmd and initialize the $@ array with the lines from that +# command. +# usage: +# cmd="echo *"; eval "${setargs_from_cmd}" +# for i in "$@"; do echo "($i)"; done +###################################################################### +setargs_from_cmd='saved_IFS="${IFS}"; IFS=" +"; set args `eval "${cmd}"`; IFS="${saved_IFS}"; shift' -- cgit v1.2.3