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.
sort -u)
printf "%s\n" "${mods[@]//-/_}" -- 1.7.6.4