Re: rebase [-i --exec | -ix] <CMD>...
- From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
- Date
- Jun 7, 2012, 20:49 UTC
- Message-ID
- <vpqboku3l0s.fsf@bauges.imag.fr>
- In-Reply-To
- <20120607215512.Horde.RVmScHwdC4BP0QcggMBjKUA@webmail.minatec.grenoble-inp.fr>
konglu@minatec.inpg.fr writes:
> As you pointed out, the problem seems to come from this line > tmp=$(sed "/^pick .*/i\exec $i" "$1") > I think that the dquote here doesn't work on MacOS, though i've > never tried it.
I don't see a reason why it wouldn't. Anyway, quotes are managed by the shell, and in our case, sed is the one complaining.
I experimented a bit, and it seems Mac OS's sed insists in having a \ and a newline after i (it seems POSIX requires it too). In your code above, the \ is included in double quotes, so you have to escape it.
This snippet works reliably on my Linux machine and on a Mac OS X one:
x=$(echo 'pick foo' | sed -e "/pick/i\\ exec $1") echo "$x"
> Anyway, even if it's not the problem, this kind of quoting is quite > odd so it will be removed in the next patch
Be careful, you do need quoting around $i.
-- Matthieu Moy http://www-verimag.imag.fr/~moy/