Why is ./ sometimes needed?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Why is ./ sometimes needed?
# 29  
Old 01-31-2019
Quote:
Originally Posted by wisecracker
Thanks Don...

There is this however, reference to OSX 10.14.1, default bash terminal:
Code:
Last login: Thu Jan 31 12:05:01 on ttys000
AMIGA:amiga~> man true
AMIGA:amiga~> help true
true: true
    Return a successful result.
AMIGA:amiga~> man false
AMIGA:amiga~> help false
false: false
    Return an unsuccessful result.
AMIGA:amiga~> man :
No manual entry for :
AMIGA:amiga~> help :
:: :
    No effect; the command does nothing.  A zero exit code is returned.
AMIGA:amiga~> 
AMIGA:amiga~> which true
/usr/bin/true
AMIGA:amiga~> which false
/usr/bin/false
AMIGA:amiga~> which :
AMIGA:amiga~> _

Both XUbuntu56 and I can learn from your expertise on this.
I have not copied and pasted the man pages but they do exist.

As you can see there is a manual AND a help entry for "true" and "false", do I take it the some shells, perhaps dash or ash, do not have these as builtins as it looks like I have both builtin and transient versions.
":" is builtin only so I assume that in POSIX this IS a requirement but the others are optional?

TIA.

Bazza...
The : utility is required by the standard to be a special shell built-in utility.

If you have initialized PATH to the set of directories defined by your operating system to contain all of the standard utilities, the standard requires that the false and true utilities be available either as regular shell built-ins or as stand-alone utilities in one of the directories in PATH. Furthermore, if you are using things like:
Code:
find -exec command_name "{}"

where command_name is the name of a standard utility (including both false and true, but not :) with PATH set as described above), it is required to be found even if it is supplied by your shell as a regular built-in. If, however, command_name is the name a special built-in utility (including :), the results are undefined.

And, despite what the macOS true and : man pages say the following sequence of commands (attempting to run the : and true commands) with redirections that fail:
Code:
bash
bash-3.2$ : >/unknown/unknown
bash: /unknown/unknown: No such file or directory
bash-3.2$ true >/unknown/unknown
bash: /unknown/unknown: No such file or directory
bash-3.2$ echo $?
1
bash-3.2$ : >/unknown/unknown
bash: /unknown/unknown: No such file or directory
bash-3.2$ echo $?
1
bash-3.2$

both produce non-zero exit codes and diagnostic messages written to the standard error output. This was run on macOS Mojave version 10.14.2. Before you say that the man pages are wrong, look more closely at the diagnostics. The diagnostics are coming from bash; not from the : or true utilities. The shell is performing the redirections before invoking the utilities and since the redirections are failing, the utilities are not invoked. You have to be able to run : and true before they can return a zero exit code.

Are we having fun yet? Smilie
This User Gave Thanks to Don Cragun For This Post:
# 30  
Old 01-31-2019
Hi Don...

I was aware that bash created the error report but didn't know that part of the standard included certain transient commands.
I appreciate the '/bin/echo' and '/usr/bin/printf' have to be around so that if 'bash' is used as 'sh' as in OSX then these have to override the builtins.
I had great fun getting '/bin/echo' to work with escape codes but it is easily possible in 'dash'.


Anyhow we have command[]eered this thread and I am now clear. Thanks to all including the OP for putting up with me.

See attachment, I have left the error in, my typo fault:
Why is  ./  sometimes needed?-escpng
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help needed

First of all, let me state that I am a windows admin. I have a windows share mounted to /mnt/server I need a script that will either login as sudo or perform commands with sudo rights. I need the script to copy all of the users /home folders to the mounted windows share. Now If I can... (2 Replies)
Discussion started by: EricM
2 Replies

2. Shell Programming and Scripting

Help Needed

please reply for this https://www.unix.com/shell-programming-scripting/111493-cutting-lines.html its really urgent (1 Reply)
Discussion started by: jojo123
1 Replies

3. Shell Programming and Scripting

help needed...

Guys, There is a file where there are 1000s of records. In the file if some condition satisfies in a certain TAB record (TAB would be first 3 digits of a certain record) then move TAB and all the records (or lines) after TAB to new_file, until another TAB record is encountered in the same... (1 Reply)
Discussion started by: Prat007
1 Replies

4. Shell Programming and Scripting

Help needed ....

Hi... I have a folder /home/data ;where some files are present. aaa_asas.txt bbb_xxx.txt ccc_xsxas.txt ddd_sa2esa.txt ------ Also I have a file which is as follows.(/home/file1) cat /home/file1 aaa you bbb are ccc very ddd good -------- now I want to rename all the files in the folder... (7 Replies)
Discussion started by: newbee1
7 Replies

5. UNIX for Dummies Questions & Answers

Help needed please.

i've been given an assignment to Write a system utility called recycle that satisfies the following requirements as they might be displayed in a UNIX/Linux man page: NAME recycle - stores files in a recycle bin SYNOPSIS recycle ... DESCRIPTION Recycle is a replacement for the... (3 Replies)
Discussion started by: jerryboy78
3 Replies

6. UNIX for Dummies Questions & Answers

little help needed..

hi everyone i'm a noob trying to learn unix language.. but seems like i got no leads on how to start.. i'm playing with the 'ps' command.. i'm trying to show the pid, ppid, username, command, cpu utilization (in desc order), process start time and process status.. all in a command.. am i able... (3 Replies)
Discussion started by: hilofat
3 Replies

7. AIX

Little help needed.

Hello, I am quite new to AIX, but have Linux experience. Iam facing a peoblem with AIX 5.2 running on a 43p Model 150 (RS6000). I tried everyting and i cant have the network to run properly. :confused: /etc/hosts looks like this: 127.0.0.1 loopback localhost 192.168.XXX.XXX... (5 Replies)
Discussion started by: Netghost
5 Replies

8. UNIX for Dummies Questions & Answers

Help needed

HI can any one help me with the appropriate answers for the below: 1.Enter an # before a command and press .what do you see,and how do you think you can take advantage of the behaviour? 2.Is tar -cvfb20foo.tar*.c legitimate or not.will this command work without the - symbol? 3.The command... (1 Reply)
Discussion started by: akhil1460
1 Replies

9. UNIX for Dummies Questions & Answers

Help needed

Hello I am a newbie and want to learn unix . Does unix and linux are one and same. I have red hat linux cd but i want to take advice from some one wheather unix and linux are same. If not ,where i'll get a Unix os setup and how i'll install it. If linux would do then how should... (3 Replies)
Discussion started by: hunter87
3 Replies

10. Shell Programming and Scripting

Help is needed

Hi I'm trying to print a directories struct tree that will look like this: A _a _b _B __c __d __C ___e B _a _b I'm doing a recursion, but how can I know how much space is needed before printing after the recursion? (3 Replies)
Discussion started by: abcde
3 Replies
Login or Register to Ask a Question