Shawn Walker wrote: > On Feb 6, 2008 4:14 PM, Kyle McDonald <[EMAIL PROTECTED]> wrote: > >> Shawn Walker wrote: >> >>> On Feb 6, 2008 3:37 PM, Kyle McDonald <[EMAIL PROTECTED]> wrote: >>> >>> >>>> Shawn Walker wrote: >>>> >>>> >>>>> On Feb 6, 2008 3:18 PM, a b <[EMAIL PROTECTED]> wrote: >>>>> >>>>> Oh, and as far as the enterprise argument, go talk to some of the >>>>> enterprise sysadmins who post here; they hate that /bin/sh isn't >>>>> anywhere near portable across systems. >>>>> >>>>> >>>>> >>>>> >>>> It's also not part of any standard, so how could it really? >>>> >>>> >>> That doesn't excuse having a good standard shell for /bin/sh. >>> >>> >>> >> What reason is there for the 'standard' shell to be named /bin/sh though? >> >> You didn't answer this one.
You seem to think that 'bin'sh is the name of the 'default system shell', and therefore if it's desirable for the default system shell to be POSIX compliant, then /bin/sh has to be also. Your premise is false. the name /bin/sh is not annointed with any special posers to be any more important of a shell on a system than any other. It's just the traditional name for the 'bourne shell'. People have written millions of line s of script code that depends on the behaivior of the bourn shell being found at /bin/sh. You want to tell all of the users of that code 'Opps, sorry. This is progress.' instead of just using the standarized, portable, method for loacating a standards compliant shell at whatever path the system decides to install it. >> When there is a standards compliant shell at another name that will work, >> > > Don't know; don't care. All I know is that other platforms are moving > that way and it can only be a good thing in the long-term. > > Only if the move is really a step forward. Linux put bash as /bin/sh because GNU didn't have another sheell at the time. Now, from posts in this thread, it appears some are looking to get away from 'bash' because it wasn't a good choice. I guess it was good we didn't follow linux's lead back then huh? Just because everyone is doing it doesn't make it good or right. And I don't aggree it's 'good' or 'right' to do the same thing just to be the same either. > The long-term view is that other platforms will have a POSIX shell at > #!/bin/sh and OpenSolaris, in my view, should have one as well to meet > those changing market conditions. > > Changes to 'market conditions' are made by the customers, not the developers. Just because a developer makes a change does not mean his customers were asking for it. Here in this list we have heard from several Sun customers who are specificall asking for this not to happen. There was I think one (pother than you) who thought it was a good idea. Where is the loud call for this form the market? There is a mechanism in POSIX for a script to determine where on a system a POSIX shell is located. Any script author who wants to write his script once for all posix platforms should use that mechanism to make sure his script is run. *If they haven't done this, then they haven't written a POSIX portable script.* >> Trying to use software on a system other than what the developer >> intended is asking for problems. Obviously the developer didn't test it >> on these other platforms either. >> > > I disagree. > You don't think developers should not test their code on all the platforms they want it to run on? You think you should have guarantees that a program from one platform will run on any other without change or testing? When I want that, I look at languages that run in a virtual machine environment. Not Shell scripts. >> Given that there is no standard for how /bin/sh should work, it's >> possible that those scripts even take advantage of non-standard >> differences of the /bin/sh, and that they still won't work on strictly >> POSIX compliant /bin/sh that doesn't also emulate the other behaviors of the >> /bin/sh sheel they written for You missed what I really said: Not only will scripts that work today break. But all those scripts you're hoping to make just magically work will probably still need work! > Some things become standards because the market adopts them. > > No. Standards are things that a product or porogram can be tested against and verified to meet. > Not every "standard" comes about as the result of a committee; some > come about by changes in the market. > > Maybe in the beginning, but they are documented, considered, revised, commented on. etc. before becoming standards. They're not created just from shear critical mass. >> If these scripts will magically start working when /bin/sh is ksh93 >> (which I doubt) then they'll also start working if the users edit them to >> start with #!/bin/ksh. And sinve that is (more?) standards compliant,that >> should still work on the platforms the scripts already work on. >> > > That is not really a practical option in the long term. > > The only practical option long term is to start writing portable scripts using standards that platforms and programs can be tested against. Then at least when you know your script obeys the standard, it will run on all the platforms that obey the standard too. > We can't force everyone else to do things our way; we must adapt to > the majority way where possible. > Not our way. The POSIX way. > Just as the UNIX certification has become largely irrelevant in > today's market (though is still valuable to certain parts of it). > > huh? >> Are different implementations of the Bourne Shell incompatible? Yes. >> > > > *Some*, but not all, are. > > I meant incompatible with each other. Not incompatible with POSIX. I don't think, and someone can correct me if I'm wrong that any shell that has true Bourne shell behavior on any platform will meet the requirements of a POSIX shell. >> Is /bin/sh the tradition location/name of the Bourne Shell? Yes. >> > > On some platforms. > No. Traditionally it is the location of the bourne shell. period. That some platform put something else there just to have something there (becuase they didn't have to have something there.) is irrelevant. >>> At least with a POSIX shell for /bin/sh, there is a far better chance of >>> getting scripts written by third parties to work. >>> >>> No there's not. More than just the shell needs to be POSIX. The whole environment needs to be too. Once you setup or scripts environment properly, then you can run (more) Portably across systems. As matter of fact setting up your enviroment to POSIX, requires you to use a POSIX 'userland', not GNU. So pushing for a POSIX shell for script compatibility kinds goes against your push for the default userland to be GNU. Just a POSIX shell gets you next to nowhere. _______________________________________________ opensolaris-discuss mailing list opensolaris-discuss@opensolaris.org