tmp

The source command read and execute commands from a file. My parent.sh script source a script called child.sh. But, child.sh script can not determine it’s own location using $0. By default, $0 gives parent script location. How do I find out a script that is sourced at the command line can determine it’s own location? My sample script:

#!/bin/bash
# /var/www/html/java/tasks/child.sh
_me="$0"
# I want /var/www/html/java/tasks in _currentdir
_currentdir="${_me%/*}"
echo "${_currentdir}"

When I run from parent.sh:

source child.sh

OR

source /var/www/html/java/tasks/child.sh

The $_currentdir is set to be the directory where parent.sh lives which is in /root/scripts/java/helper or . (current) directory. How do I fix this problem?

{ 1 comment }

How do I add two numbers using awk? How do I calculate all incoming number stream on fly and display the total using awk?

{ 0 comments }

I need to get a list of sizes in human readable du output format. How do I get the output for du command in GB under Linux or UNIX operating systems?

{ 1 comment }

Q. How do I create a temporary file securely under UNIX Bash shell? A. There are many ways: [a] mktemp command – make temporary unique filename [b] $RANDOM – Use $RANDOM variable mktemp command From the man page: The mktemp utility takes the given filename template and overwrites a portion of it to create a […]

{ 2 comments }

How do I replace a string with another string in all files? For example, ~/foo directory has 100s of text file and I’d like to find out xyz string and replace with abc. I’d like to use sed or any other tool to replace all occurrence of the word.

{ 60 comments }