Why does /bin contain binaries for builtins?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Why does /bin contain binaries for builtins?
# 15  
Old 01-20-2011
Quote:
Originally Posted by methyl
The fact remains that when invoked as /usr/bin/cd it does not behave the same as a plain "cd" because it starts a new Shell.
Indeed, but as long as this is documented, that's no problem to me.
Quote:
The HP-UX implementation of the binary "pwd" is more interesting because I have used the fact that it behaves correctly (as distinct from the POSIX Shell version) to produce consistent portable scripts.
I wouldn't say the pwd builtin behaves incorrectly. It behaves as designed and documented. i.e. it prints PWD value. i.e. the variable storing the current directory set by the last "cd". If you want to get a symlink free pwd, you can use "pwd -P" which is POSIX. see pwd
About HP-UX implementation, the posted "cd" code has a useless "exit $?" last line.

By the way, (very) early Unix shell implementations had no builtins and all utilities were external commands, including cd which was spelled chdir or ch at that time. When the fork system call was first implemented, the chdir command ceased to work puzzling Dennis Ritchie and team.

cf: Early Unix history and evolution (looks for "memorable")

Last edited by jlliagre; 01-22-2011 at 02:21 AM.. Reason: fix link to posix pwd manual page
# 16  
Old 01-21-2011
My view on the changed behaviour of builtin "pwd" is based on extensive experience of cross-platform porting/development and some of the subtle differences you encounter.
Personally I prefer "pwd" to show the current working directory. Maybe I'm being picky?

Some of it is of course nostalgia for some of the older rock-steady unix implementations which were ONE version of unix. i.e. Not hybrid Berkeley and System V and whatever.

The sheer number of posts on this board which work on the posters computer but do not work on the original posters computer is evidence that the latest POSIX "standard" is yet again a joke. The POSIX saga has been going on for umpteen years.

Imho. While major manufacturers such as IBM, HP and Sun continue to produce manufacture-specific unix commands for basic functions there is no chance of a common unix standard. I cite virtually any command to do with hardware configuration or software libraries.

@jlliagre
Great link. Very interesting. Big nostalgia for me because after working on huge impersonal Mainframe computers I worked on PDP-11/23 and VAX. However we ran RSX11-M on the PDP's and eventually offered developers the DCL command interface which was also available as an interface to VMS on the VAX's.
Hmm. Some of the command syntax in DCL is remarkably similar to subsequent DRDOS and MSDOS. Must be a coincidence.
For those who were born before POSIX, here is a weak article about an early standard command language.
DIGITAL Command Language - Wikipedia, the free encyclopedia
Omg. Apart from space characters around "=" many unix users will be able to follow the syntax.

Last edited by methyl; 01-21-2011 at 09:09 PM.. Reason: Big pasting problem, bear with me.
# 17  
Old 01-22-2011
Quote:
Originally Posted by methyl
Personally I prefer "pwd" to show the current working directory. Maybe I'm being picky?
Before symlinks were introduced in Unix, the current directory notion was unambiguous. Afterward, not any more.

One can argue the following behavior might be surprising to someone unaware about the fact /a/b is a symbolic link.
Code:
$ cd /a/b
$ pwd
/c/d

In any case, both /a/b and /c/d are both a valid path to the same directory.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Usage of #!/bin/sh vs #!/bin/bash shell scripts?

Some question about the usage of shell scripts: 1.) Are the commands of the base shell scripts a subset of bash commands? 2.) Assume I got a long, long script WITHOUT the first line. How can I find out if the script was originally designed für "sh" or "bash"? 3.) How can I check a given... (3 Replies)
Discussion started by: pstein
3 Replies

2. AIX

Redistribution bin required for AIX. j7r164redist.7.1.0.25.bin

Hi, I am planning to install a version of Informatica on my AIX box. It requires a specific java build in pap6470_27sr2-20141101_01(SR2). The current link for IBM 64-bit SDK for AIX®, JavaTM Technology Edition, Version 7 Release 1 has a more recent version in j7r164redist.7.1.0.75.bin. Is... (4 Replies)
Discussion started by: meetpraveens
4 Replies

3. UNIX for Dummies Questions & Answers

Shell and bash builtins...

Not sure if this is the right forum but I have collated a listing of shell and bash builtins. Builtins is a loose word and may include the '/bin' drawer/folder/directory but NOT any others in the path list. In the case of my Macbook Pro, OSX 10.7.5 the enabled internals is also listed... ... (1 Reply)
Discussion started by: wisecracker
1 Replies

4. Solaris

What is the difference between xpg4/bin and usr/bin?

Hi Experts, I found that the same commands(sort, du, df, find, grep etc.) exists in both dir. What is the difference to use them? i.e: to use xpg4/bin/grep and usr/bin/grep My OS version is SunOS 5.10 Regards, Saps (7 Replies)
Discussion started by: saps19
7 Replies

5. OS X (Apple)

When to use /Users/m/bin instead of /usr/local/bin (& whats the diff?)?

Q1. I understand that /usr/local/bin means I can install/uninstall stuff in here and have any chance of messing up my original system files or effecting any other users. I created this directory myself. But what about the directory I didn't create, namely /Users/m/bin? How is that directory... (1 Reply)
Discussion started by: michellepace
1 Replies

6. UNIX for Advanced & Expert Users

Writing Custom Builtins for KSH93

I am looking to create some ksh93 extensions using the custom builtin feature. I can successfully create a builtin function, load it using the builtin -f command and get an output. However, I want to get/set values of KSH variables from within my built-in. For example, lets say I am creating... (2 Replies)
Discussion started by: a_programmer
2 Replies

7. Programming

pthread_mutex_lock in ANSI C vs using Atomic builtins of GCC

I have a program which has 7-8 threads, and lots of shared variables; these variables (and also they may not the primitive type, they may be enum or struct ), then they may read/write by different threads at the same time. Now, my design is like this, typedef unsigned short int UINT16;... (14 Replies)
Discussion started by: sehang
14 Replies

8. Shell Programming and Scripting

program name and function name builtins

Hi Is there a way to get the program/script name or function name usng built ins. Like in many languages arg holds the program name regards (2 Replies)
Discussion started by: xiamin
2 Replies

9. UNIX for Dummies Questions & Answers

fuser: difference with bin/sh and bin/ksh shell script

Hi, I have a problem I don't understand with fuser. I launch a simple shell script mysleep.sh: I launch the command fuser -fu mysleep.sh but fuser doesn't return anything excepted: mysleep: Then I modify my script switching from #!/bin/sh to #!/bin/ksh I launch the command fuser -fu... (4 Replies)
Discussion started by: Peuj
4 Replies

10. UNIX for Dummies Questions & Answers

/bin/sh: /usr/bin/vi: No such file or directory when doing crontab

I just set up an ftp server with Red Hat 5.2. I am doing the work, I'm baby stepping, but it seems like every step I get stuck. Currently, I'm trying to set up a crontab job, but I'm getting the following message: /bin/sh: /usr/bin/vi: No such file or directory. I see that vi exists in /bin/vi,... (3 Replies)
Discussion started by: kwalter
3 Replies
Login or Register to Ask a Question