ShellCheck – check basic POSIX shell script errors

Here is description of the tool:

Description : The goals of ShellCheck are:
:
: * To point out and clarify typical beginner’s syntax issues,
:   that causes a shell to give cryptic error messages.
:
: * To point out and clarify typical intermediate level semantic
:   problems, that causes a shell to behave strangely and
:   counter-intuitively.
:
: * To point out subtle caveats, corner cases and pitfalls, that may
:   cause an advanced user’s otherwise working script to fail under
:   future circumstances.

To install

dnf install ShellCheck

And just run the tool on the script to get the common errors.

nall – schedule your tasks like a pro

nall is a utility to run your scripts ( for whatever ) every defined period. Here is description:

Description : Nall is a small gtk+ application that discretely fits into your freedesktop
: system tray (such as trayer).
:
: Its purpose is to spawn periodically every kind of script and display a
: one-line output in the tooltip window. The main usage of nall is monitoring or
: just notifying of almost everything (it just depends upon your imagination and
: ability to script).

For installation :

sudo yum install nall

Once done, you can start from terminal as “nall” or create a autostart file “~/.config/autostart/nall.desktop” to start it automatically when you log in :

[Desktop Entry]
Type=Application
Exec=/usr/bin/nall
Hidden=false
NoDisplay=true
X-GNOME-Autostart-enabled=true
Name[en_US]=nall
Name=nall
Comment[en_US]=nall
Comment=nall

fork a new process in perl

I was doing something today and found that I require to fork a new process in perl. Now I had never done this earlier, so I did not know how to do this.

First some background :

I was doing some program very similar to http server, where the script accepts some input through a socket and then processes the same. In doing so I was seeing that the script was taking some time in processing the input and thus was not processing the second request until the first one was completed. Simple solution, fork the process.

[cc lang=”perl”]

$pid=fork();

if (! $fork)

{

do the child processing

exit

}

else

{

do the parent processing

exit

}

Enhanced by Zemanta