bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Can someone explain this?


From: Jon Seymour
Subject: Re: Can someone explain this?
Date: Sat, 12 Feb 2011 15:28:06 +1100

Ok, so it relates to how ssh interprets its command argument:

So:

    bash -c 'cd /tmp ; pwd'

My expectation was that it would invoke bash with the arguments:

'-c'
'cd /tmp; pwd'

But bash is actually invoked with:

'-c'
'cd'
'/tmp'

and then pwd is invoked, presumably in same shell that invoked bash.

This can be seen with this:

address@hidden:~$ ssh localhost bash -c 'echo\ \$\$\ \$PPID' ';' echo '$$'
11553 11552
11552

bash is invoked with:
'-c'
'echo $$ $PPID'

then:

echo $$ runs in the parent shell

jon.


On Sat, Feb 12, 2011 at 2:44 PM, Dennis Williamson
<address@hidden> wrote:
> On Fri, Feb 11, 2011 at 9:21 PM, Jon Seymour <address@hidden> wrote:
>> Correction - a _leading_ cd command and only a leading cd command,
>> seems to be completely ignored in the case I described.
>>
>> Why is this?
>>
>> jon.
>>
>> ---------- Forwarded message ----------
>> From: Jon Seymour <address@hidden>
>> Date: Sat, Feb 12, 2011 at 2:18 PM
>> Subject: Can someone explain this?
>> To: address@hidden
>>
>>
>> Can someone explain why this is happening?
>>
>> #expected
>> $ bash -c 'cd /tmp; pwd'
>> /tmp
>>
>> #expected
>> $ bash -c 'pwd; cd /tmp; pwd'
>> /home/jseymour
>> /tmp
>>
>> #expected
>> $ ssh localhost bash -c 'pwd; cd /tmp; pwd'
>> /home/jseymour
>> /tmp
>>
>> #unexpected
>> $ ssh localhost bash -c 'cd /tmp; pwd'
>> /home/jseymour
>>
>> My expectation is that the last command should print:
>>
>> /tmp
>>
>> But, instead, the cd command seems to be completely ignored when bash
>> is run under ssh. I have reproduced this with bash 4.1.5 on Linux and
>> bash 3.0.0 on AIX.
>>
>> jon.
>>
>>
>
> It's not particular to Bash. I can reproduce it in several other shells.
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]