summaryrefslogtreecommitdiff
path: root/mk/scripts/shell-lib
diff options
context:
space:
mode:
authorrillig <rillig>2005-08-24 21:51:10 +0000
committerrillig <rillig>2005-08-24 21:51:10 +0000
commit54ea66d96c7e6b83eb878def5f4565e025ee3692 (patch)
tree6181aaa2be6219a9a89f4ff090801fe36b47518f /mk/scripts/shell-lib
parent504fbc4ae4860fe082cd105744268a056405cf5d (diff)
downloadpkgsrc-54ea66d96c7e6b83eb878def5f4565e025ee3692.tar.gz
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.
Diffstat (limited to 'mk/scripts/shell-lib')
-rw-r--r--mk/scripts/shell-lib13
1 files changed, 12 insertions, 1 deletions
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'