'time' does NOT work on a function in 'dash'.


 
Thread Tools Search this Thread
Operating Systems OS X (Apple) 'time' does NOT work on a function in 'dash'.
# 1  
Old 09-11-2017
'time' does NOT work on a function in 'dash'.

Hi guys and gals...

I am writing a piece of code that is dash compliant and came across this error.
I have put it in the OSX section as that is what I am using.
I have no idea what the 'dash' version is but was installed about 6 months ago.

MBP, OSX 10.12.6, default terminal running dash on top of default bash.
Code:
#!/usr/local/bin/dash

delayme()
{
	echo "Sleep for 1 second."
	sleep 1
}

echo "Test the function."
delayme

echo "Test the timer."
time delayme

echo ""
echo "Test a real command."
time sleep 1

Result...
Code:
Last login: Mon Sep 11 19:10:20 on console
AMIGA:amiga~> cd Desktop/Code/Shell
AMIGA:amiga~/Desktop/Code/Shell> ./dash_function.sh
Test the function.
Sleep for 1 second.
Test the timer.
delayme: No such file or directory
        0.00 real         0.00 user         0.00 sys

Test a real command.
        1.00 real         0.00 user         0.00 sys
AMIGA:amiga~/Desktop/Code/Shell> _

I have no idea if this error also exists with Linux or other UNIX like flavours.
Does anyone know the reason why this error occurs using 'time' on the _function_ as the code works perfectly in 'bash'.
I can't find anything about it on the WWW.

TIA.
Bazza...
# 2  
Old 09-11-2017
probably cannot 'time' a function in dash - dunno.....
# 3  
Old 09-11-2017
Code:
mute@zbox:~$ type time
time is a shell keyword
mute@zbox:~$ dash
$ type time
time is /usr/bin/time

Look at dash manual. It doesn't provide a time. bash has a built-in time, so it can time things like functions. Since dash doesn't provide it, you're using an external program called time. It cannot call shell functions.
These 2 Users Gave Thanks to neutronscott For This Post:
# 4  
Old 09-12-2017
Hi neutronscott...

Thanks, excellent reply.

I also tested the external command and it does not work in 'bash' either.

It never occurred to me that the external command would not work on a function.

Again thanks.

Bazza.
# 5  
Old 09-12-2017
Hi.

This seems to be not time-critical, so you could write a nonce-script, like so on file z7:
Code:
#!/usr/bin/env dash
#!/usr/local/bin/dash

cat >delay.sh  <<EOF
#!/usr/bin/env dash
delayme()
{
        echo "Sleep for 2 second."
        sleep 2
}
delayme
EOF
chmod +x delay.sh

echo "Test the function."
# delayme
./delay.sh

echo "Test the timer."
# time ./delayme
time ./delay.sh

echo ""
echo "Test a real command."
time sleep 1

producing:
Code:
$ ./z7
Test the function.
Sleep for 2 second.
Test the timer.
Sleep for 2 second.
        2.01 real         0.00 user         0.00 sys

Test a real command.
        1.01 real         0.00 user         0.00 sys

On a system like:
Code:
OS, ker|rel, machine: Apple/BSD, Darwin 16.7.0, x86_64
Distribution        : macOS 10.12.6 (16G29), Sierra
dash - ( local: /usr/local/bin/dash, 2017-09-12 )

Best wishes ... cheers, drl
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

A dash to GOTO or a dash from GOTO, that is the question...

Well, guys I saw a question about GOTO for Python. So this gave me the inspiration to attempt a GOTO function for 'dash', (bash and ksh too). Machine: MBP OSX 10.14.3, default bash terminal, calling '#!/usr/local/bin/dash'... This is purely a fun project to see if it is possible in PURE... (3 Replies)
Discussion started by: wisecracker
3 Replies

2. UNIX for Beginners Questions & Answers

UNIX/Shell function does not work as wished

Hello everyone I really hope you can help me, I can't continue: Im on a project to work with my Server. I wanted to put on my server all data-systems and I did this: df -h The output is a string. How can I turn the string into a table? Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf... (5 Replies)
Discussion started by: anonymuser
5 Replies

3. Shell Programming and Scripting

Flock preventing function to work

Hi i have a script that check pings and i use flock to so the script wont run multipul times : its not the whole script but this is the idea : ( flock -x -w 3 200 || exit 1 /usr/sbin/fping -c$count -i$interval -a $hosts > $FILE1 2>&1 ) 200>/var/lock/.myscript.exclusivelock now i... (4 Replies)
Discussion started by: batchenr
4 Replies

4. Shell Programming and Scripting

Function doesn't work

Hello, and here's my problem: I can't get my function to do what I want. When I call my function get_from_A_to_F I give it an argument $remainder. I want my function to substitute a number higher than 9 to a specific letter. If the argument is equal to 10 than it should change it to "A".... (8 Replies)
Discussion started by: linas
8 Replies

5. Shell Programming and Scripting

How the Sleep function will work?

Hi All, I am new to Unix , there i am facing one problem with sleep command. that is .. in while loop i have defined sleep function .. my condition is like this while #i knew this is infinite loop do sleep 200 echo "hello " done. this condition will never become .. true... (3 Replies)
Discussion started by: mandlysreedhar
3 Replies

6. UNIX for Dummies Questions & Answers

copy *. does not work in function

Hi, I want to copy a file/directory ( recursively , if needed) and if destination directory does not exist create it ( with parent directory, if needed). funcopy () { if ; then echo "$2 exists , copying files" cp -r "$1" "$2" else echo "Directory does not exist;Create directory" mkdir... (1 Reply)
Discussion started by: greet_sed
1 Replies

7. Shell Programming and Scripting

Cannot get grep to work within function.

Hello again, Am having an issue now with getting a simple grep command to work within a function.. The function is as below... function findRecord() { output=grep "001" recordDatabase echo $output } At the moment the "001"... (3 Replies)
Discussion started by: U_C_Dispatj
3 Replies

8. Programming

why printf() function don't go work?

I use FreeBSD,and use signal,like follows: signal(SIGHUP,sig_hup); signal(SIGIO,sig_io); when I run call following code,it can run,but I find a puzzled question,it should print some information,such as printf("execute main()") will print execute main(),but in fact,printf fuction print... (2 Replies)
Discussion started by: konvalo
2 Replies

9. Web Development

work with date function

hi, how can i can pass the value of unixformat to date/time? and how can i retrieve the day/month/year from a date? thanks a lot for your help ps:i using php (1 Reply)
Discussion started by: jasonx22
1 Replies

10. Shell Programming and Scripting

Will the continue function work ????

I have written a script which does a following functions:- 1) Check a area if it is mounted or not 2) If the area is not mounted it will prompt the user to mount the are. 3) Once the area is mounted and the option is given as Y or y the script continues... My question is will the below... (2 Replies)
Discussion started by: kamlesh_p
2 Replies
Login or Register to Ask a Question