Sponsored Content
Top Forums Shell Programming and Scripting Blog-Thread: Creating a Shell Wrapper and Runtime Modifier (SWARM) Post 303045377 by sea on Wednesday 18th of March 2020 09:47:46 PM
Old 03-18-2020
Thank you drl!
When I execute 'as is' it works - but it isnt quite what I was aiming for..
-> Or I fail to see how to adapt.

But I'm not getting the expected results when I modify your script to my situation:
Code:
unset my_test_a my_test_b
pl " Results, in function f1:"
(
 	while true; do
		f1
	done
) &
echo $my_test_a
echo $my_test_b

Output:
Code:
[sea@manjaro-desktop SWARM]$ bash ~/drl 

-----
 Results, not in function:



-----
 Results, in function f1:


Now here's my 'case output' , also, note the new time, isnt that great?
Allthough, this is one of the 'better' runs.

Please note the 'echo runs'!

Code:
[sea@manjaro-desktop SWARM]$ time . ./runtime 
.............+++ echo runs
+++ set +x
# | SWARM 0.4-7                                                                           | 2020-03-19 / 02:02:55 | #
# |                                                    my title                                                   | #
# | left                                               middle                                               right | #
# |                                                                                                               | #
# |                                                   Piped input                                                 | #
# | Is this cool? (yn)                                                                                            | #
0
# | Is this cool? (yn)                                                                                            | #
1
# |                                                  Piped Output                                                 | #
# | this is                                            a piped                                          test code | #
# | this is                                          an argument                                        test code | #
# | this was                                         an argument                                        test code | #
# | left                                                                                                          | #

real	0m0.047s
user	0m0.043s
sys	0m0.009s
 ----------- TEST AREA -----------

real	0m0.075s
user	0m0.067s
sys	0m0.015s
[sea@manjaro-desktop SWARM]$ echo $my_test_var 

[sea@manjaro-desktop SWARM]$ +++ echo runs
+++ set +x

[sea@manjaro-desktop SWARM]$ echo $my_test_var 

[sea@manjaro-desktop SWARM]$

But the $my_test_var remains empty. (just like in the modified script)

Now here's the code in question:
PHP Code:
#
# For easier code reusage, lets combine all math into a sub process
# Should help to speed things up a little more for the end user front ;)
# This seems useless... TODO remove or fix
#
if true
then
    
unset "${!len*}my_test_var
    swarm
.geometry.update() { #
        
declare -g DATE_TIME=$($DATE +'%H:%M:%S')        # Time on the other hand is

        
declare -g  my_test_var="$(date +%T)"

        
# Set basic values
        
declare -g BORDER_LEFT="${SWARM_THEME_DATA[border-left]}"
        
declare -g BORDER_RIGHT="${SWARM_THEME_DATA[border-right]}"
        
declare -g clrFRONT="${SWARM_THEME_DATA[color-front]}"
        
declare -g clrBACK="${SWARM_THEME_DATA[color-back]}"
        
declare -g clrCL="\e[2K"

        
# Check if border-right was set:
        
[ -"$BORDER_RIGHT] && \
                declare -
g BORDER_RIGHT && \
                for((
i=${#BORDER_LEFT}-1;i>=0;i--)); do BORDER_RIGHT="$BORDER_RIGHT${BORDER_LEFT:$i:1}"; done

        # Get some numbers
        
declare -g lenLeft"${#BORDER_LEFT}"
        
declare -g lenRight="${#BORDER_RIGHT}"
        
declare -g lenClrFont=${#clrFRONT}
        
declare -g lenClrBack=${#clrBACK}
        
export identRight=$(( $lenRight + ${#clrCL}  ))
        
export numEND=$(( $COLUMNS ))

        
# If user wants extended logs, he shall have it
        
$isRO && $doLogExt && init.log "$SWARM_MSG_INIT_PID_GEOMETRY${PPID:-$PID}"
    
}
    
export -f swarm.geometry.update

    
# Sub shell
    
(
        while ${
PS:-\ps} ${PPID:-$PID} | ${GREP:-\grep} ${PPID:-$PID} >> /dev/zero
        
do
            
# Ok, lets keep it simple,
            #DATE_TODAY=$($DATE +'%Y.%m.%d')    # Cmon, day is not THAT important

            
swarm.geometry.update
            set 
-x
            
echo runs >/dev/zero
            set 
+x
            
# Using 15 secs for fallback mode
            
sleep ${SWARM_INTERVALL_GEOMETRY:-15}
        
done
    
) & >> /dev/zero
    SWARM_PID_THEME
="$SWARM_PID_THEME $!"
fi 
Please acknowledge that on first try, I had the function definition inside the subshell.
Since that didnt work out the way I wanted, I moved it 'outside' - to no change.

To me, this still looks like we cannot 'save' a variable from a sub/background process, wether it would be from within a function or not.

EDIT:
Unless I would use a tempfile to write and read the data, but that is something I want to avoid.

Last edited by sea; 03-19-2020 at 06:07 AM..
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

korn shell version at runtime?

How can I check what kornshell version I am using at runtime from within a kornshell script? (3 Replies)
Discussion started by: qanda
3 Replies

2. Shell Programming and Scripting

crontab is not creating runtime files which are in script..

this is the output i am getting here.. cp: cannot create /wls_domains/eoigw/eoigwsA/deliv/cron/MailingScript/eoigwsA_Health_Status_Report.html: Permission denied /wls_domains/eoigw/eoigwsA/deliv/cron/MailingScript/ /wls_domains/eoigw/eoigwsA/deliv/cron/MailingScript/GenerateReport.sh:... (6 Replies)
Discussion started by: surekha268
6 Replies

3. Shell Programming and Scripting

Korn Shell Wrapper script

Hi Guys, I am trying write a wrapper script but I don't have any idea. I have 4 different korn shell scripts and all of them needs some parameters from command line (positional parameter). My script cant be interactive because its supposed to be automated. I am confused how can I write a wrapper... (6 Replies)
Discussion started by: pareshan
6 Replies

4. Web Development

Creating a blog site on a local computer

Hello! I would like to create a blog website on a web domain of mine. The blog will be used for publishing economics-lated articles. I tried to use a few open source packages for blog creation (WorldPress, b2evolution, Movable type) which I wanted to test on a local computer before arranging... (5 Replies)
Discussion started by: degoor
5 Replies

5. Programming

creating multiple threads using single thread id

Hi all, Can I create multiple threads using single thread_id like pthread_t thread_id; pthread_create(&thread_id, NULL, &print_xs, NULL); pthread_create(&thread_id, NULL, &print_ys, NULL); pthread_create(&thread_id, NULL, &print_zs, NULL); pthread_join(thread_id, NULL); what... (2 Replies)
Discussion started by: zing_foru
2 Replies

6. Shell Programming and Scripting

Shell Runtime Statistics

Hi, I am trying to capture runtime stats of a shell script (c shell). Are there system variables to call? Or should I create a date variable at the start of the script and at the end of the script? I am trying to capture the time if the script stops or ends with error. Please help. ... (4 Replies)
Discussion started by: CKT_newbie88
4 Replies

7. Shell Programming and Scripting

Wrapper Script in Perl Or shell

Hello, My requirement is based on Oracle where we run a perl script and it asked some questions.I want to write a wrapper which will answer all these questions. How is it possible. Thanks (16 Replies)
Discussion started by: cotton
16 Replies

8. Homework & Coursework Questions

Shell Script average runtime

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Make a bash script that calculates average runtime for the first two scripts you made. The average should be... (17 Replies)
Discussion started by: navlelo
17 Replies

9. Shell Programming and Scripting

Shell Script and Progress Bar or GUI Wrapper

Hi, I have shell script that I am running under Ubuntu as root. Is it possible to hide the command window and show the user some sort of progress /random progress bar / or other form of GUI interaction? On MAC, I have been using Platypus but on Ubuntu I am not sure what to do. (4 Replies)
Discussion started by: naveedanwar4u
4 Replies
All times are GMT -4. The time now is 06:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy