On Mon, Sep 26, 2011 at 10:48 PM, Dave Reisner <d@falconindy.com> wrote:
On Mon, Sep 26, 2011 at 10:46:57PM -0500, Dan McGee wrote:
On Mon, Sep 26, 2011 at 8:22 PM, Dave Reisner <d@falconindy.com> wrote:
Without specifying this, xargs will split arguments on whitespace as well as newlines, and will interpret quoting and backslashes. When the delimiter is specified, every character is taken literally and only the given delimiter in honored.
This sidesteps issues with broken modalias files as evidenced by a MacBookAir3,1 or the bbs thread below:
https://bbs.archlinux.org/viewtopic.php?pid=971853
Also fixes FS#25450.
Signed-off-by: Dave Reisner <dreisner@archlinux.org> --- functions | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/functions b/functions index 8ce24ea..7f9202f 100644 --- a/functions +++ b/functions @@ -117,7 +117,7 @@ auto_modules() {
IFS=$'\n' read -rd '' -a mods < \ <(find /sys/devices -name modalias -exec sort -u {} + | - xargs modprobe -d "$BASEDIR" -aRS "$KERNELVERSION" | + xargs -d $'\n' modprobe -d "$BASEDIR" -aRS "$KERNELVERSION" | Dollar sign what? /me doesn't follow this at all, a comment would be great.
consult your manual, sir!
Words of the form $'string' are treated specially. The word expands to string, with backslash-escaped characters replaced as specified by the ANSI C standard. Backslash escape sequences, if present, are decoded.
In other words, its expanded in place. Yeah, this seems elementary to me, but I suppose its comment worthy.
Well when you say "consult your man page", I thought to myself, "Damn, did I really miss that? Let's read again." --delimiter=delim -d delim Input items are terminated by the specified character. Quotes and backslash are not special; every character in the input is taken literally. Disables the end-of-file string, which is treated like any other argument. This can be used when the in‐ put consists of simply newline-separated items, although it is almost always better to design your program to use --null where this is possible. The specified delimiter may be a single char‐ acter, a C-style character escape such as \n, or an octal or hexadecimal escape code. Octal and hexadecimal escape codes are understood as for the printf command. Multibyte characters are not supported. Nope! Nothing there. Then I realized "Oh! He is talking about some bash feature and THAT is the manpage I'm supposed to be reading." It isn't elementary to those of us that don't use shell as much as you, and RTFM on a 5439 line gargantuan manpage is not my idea of fun, not to mention the 118 lines of hits for the literal '$' character (because I would have no idea in hell how else to find it). -Dan