On 05/12/17 at 09:27am, Dave Young wrote:
On 05/11/17 at 01:44pm, Xunlei Pang wrote:
> Resolves: bz1449801
>
> "cat $KDUMP_CONFIG_FILE|grep -v "^#"|while read ..." use pipes
> to invoke subshells, as a result we met "the dreaded inaccessible
> variables within a subshell problem" as described in the book
> "Advanced Bash-Scripting Guide".
Is it worth to add a tmp file which dropped comment and blank lines?
Seems in mkdumprd there is also a while loop to parse kdump.conf
found some scripts below can strip blank lines and comments (include the
comments after valid options in a line):
grep -o '^[^#]*' a.conf|grep -v '^\s*\(#\|$\)'
But not sure how to make these two greps in one grep.
>
> >
> > It cause regressions, so revert it.
> > ---
> > kdumpctl | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/kdumpctl b/kdumpctl
> > index 46b65d2..644cf96 100755
> > --- a/kdumpctl
> > +++ b/kdumpctl
> > @@ -365,11 +365,11 @@ check_config()
> > return 1
> > }
> >
> > - cat $KDUMP_CONFIG_FILE | grep -v "^#" | while read config_opt
config_val; do
> > + while read config_opt config_val; do
> > # remove inline comments after the end of a directive.
> > config_val=$(strip_comments $config_val)
> > case "$config_opt" in
> > - "")
> > + \#* | "")
> > ;;
> >
raw|ext2|ext3|ext4|minix|btrfs|xfs|nfs|ssh|sshkey|path|core_collector|kdump_post|kdump_pre|extra_bins|extra_modules|default|force_rebuild|force_no_rebuild|dracut_args|fence_kdump_args|fence_kdump_nodes)
> > [ -z "$config_val" ] && {
> > @@ -386,7 +386,7 @@ check_config()
> > return 1;
> > ;;
> > esac
> > - done
> > + done < $KDUMP_CONFIG_FILE
> >
> > check_default_config || return 1
> >
> > @@ -799,7 +799,7 @@ load_kdump()
> >
> > check_ssh_config()
> > {
> > - cat $KDUMP_CONFIG_FILE | grep -v "^#" | while read config_opt
config_val; do
> > + while read config_opt config_val; do
> > # remove inline comments after the end of a directive.
> > config_val=$(strip_comments $config_val)
> > case "$config_opt" in
> > @@ -820,7 +820,7 @@ check_ssh_config()
> > *)
> > ;;
> > esac
> > - done
> > + done < $KDUMP_CONFIG_FILE
> >
> > #make sure they've configured kdump.conf for ssh dumps
> > local SSH_TARGET=`echo -n $DUMP_TARGET | sed -n '/.*@/p'`
> > --
> > 1.8.3.1
> > _______________________________________________
> > kexec mailing list -- kexec(a)lists.fedoraproject.org
> > To unsubscribe send an email to kexec-leave(a)lists.fedoraproject.org
> _______________________________________________
> kexec mailing list -- kexec(a)lists.fedoraproject.org
> To unsubscribe send an email to kexec-leave(a)lists.fedoraproject.org