2015-11-07 05:44:02 +0330, Seyyed Razi Alavizadeh: [...] > uname output: Linux Razi-MM061 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 > 14:46:51 UTC 2015 i686 i686 i686 GNU/Linux > Machine Type: i686-pc-linux-gnu [...] > Description: > wrong prompt and cd to root > > Repeat-By: > command "cd //" works and show prompt as "//$" > Expected that "cd //" doesn't work or at least after CDing to root dir > Terminal shows prompt as "/$" [...]
While /// or //// or any number of / strictly greater than 2 is guaranteed to be the same as / by POSIX, // alone is *allowed* to be special (but left unspecified). In practice on most systems (including yours), // is also the same as / but on a few systems like cygwin, // is used for something else (the content of // has a list of netbios names on Cygwin, and the // prefix is used for Windows UNC paths). Now, for "cd //", a shell should do chdir("//") and not assume it is the same as chdir("/") like it is for other numbers of "/" characters. Whether it should also set $PWD to "//" is up to debate but it does seem to be the most sensible thing to do. In summary, the bash behaviour is the correct one. -- Stephane