You could source the script with the function in it, perhaps that is what you need.
Code:
$ cat my_function_script.sh
function welcome () {
echo "Hello there"
}
$ cat my_call_script.sh
source ./my_function_script.sh
echo "Get ready for a greeting ....."
welcome
echo "I hope you liked your greeting"
echo
$ ./my_call_script.sh
Get ready for a greeting .....
Hello there
I hope you liked your greeting
$
Does that do the sort of thing you need? You may also see the shortcut of . instead of source but it;'s a little less clear and more difficult to search for. You would end up with a line like . ./my_function_script.sh
Either way, the script being sourced is executed in the current shell so the declared functions remain available. You have to be careful that you really want to run it, so most people have a block on functions only in what they source in.
I hope that this helps,
Robin
Last edited by rbatte1; 07-23-2019 at 07:30 AM..
Reason: Managed to double-up CODE tags
Keeping in mind that I'm relatively comfortable with programming in general but very new to unix and korn/bourne shell scripts..
I'm using awk on a CSV file, and then performing calculations and operations on specific fields within specific records. The CSV file I'm working with has about 600... (2 Replies)
Is it possible to make function variables local?
I mean for example, I have a script variable 'name' and in function I have declared variable 'name'
I need to have script's 'name' have the same value as it was before calling the function with the same declaration.
The way to preserve a... (5 Replies)
Hi,
I have a base class and derived a class from the base class, i want to print & read the data for the object created for the derived class,so i have overloaded both the << and >> operators and also have done the foward declaration.
Below is the code snippet,
#include <iostream>
class... (3 Replies)
I use a simple script to do some quantum calculations with gaussian package. the script as follows
#!/bin/sh
#put a gaussian input file into a new folder in the same name
#and submit this new job
for i in *.gjf
do
FN=$( echo $i | sed 's/.gjf//')
mkdir $FN
mv... (1 Reply)
I wrote the following Makefile:
dirs := a b c d
files := $(foreach dir,$(dirs),$(wildcard $(dir)/*))
.PHONY: all
all:
touch $(files)
The first two lines are taken from GNU make tutorial, Section 8.5 The foreach Function. I would expect the recipe
touch $(files)
to be... (2 Replies)
Greetings,
I m wondering if it's possible do do the following :
I have a simple function called "FindMoveDelete" which does the following :
FindMoveDelete()
{
find . -iname "$FILENAME*.ext" -exec mv {} "$PATH/$VAR" \; &&
find . -maxdepth 1 -type d -iname "$FILENAME*" -exec rm -rf {}... (6 Replies)
Hello,
I was trying to understand more on strtok_r() function with following code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* *From http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=strtok_r
A FreeBSD man pages * */
int main()
{
char string1;
char *sep =... (8 Replies)
Hi,
If I declare a function inside another function, it overwrites any previously declared function with the same name. This is NOT what I want.
Example:
#!/bin/bash
_test() { echo test; }
_myf() {
# I'm using the same name as the other function.
_test() { echo local test; }... (8 Replies)
Hi All,
Good Day, seeking for your assistance on how to not perform my 2nd, 3rd,4th etc.. function if my 1st function is in else condition.
#Body
function1()
{
if
then
echo "exist"
else
echo "not exist"
}
#if not exist in function1 my all other function will not proceed.... (4 Replies)
Discussion started by: meister29
4 Replies
LEARN ABOUT CENTOS
openvt
OPENVT(1) Linux 1.x OPENVT(1)NAME
openvt - start a program on a new virtual terminal (VT).
SYNOPSIS
openvt [-c vtnumber] [OPTIONS] [--] command
DESCRIPTION
openvt will find the first available VT, and run on it the given command with the given command options, standard input, output and error
are directed to that terminal. The current search path ($PATH) is used to find the requested command. If no command is specified then the
environment variable $SHELL is used.
OPTIONS
-c, --console=VTNUMBER
Use the given VT number and not the first available. Note you must have write access to the supplied VT for this to work;
-f, --force
Force opening a VT without checking whether it is already in use;
-e, --exec
Directly execute the given command, without forking. This option is meant for use in /etc/inittab;
-s, --switch
Switch to the new VT when starting the command. The VT of the new command will be made the new current VT;
-u, --user
Figure out the owner of the current VT, and run login as that user. Suitable to be called by init. Shouldn't be used with -c or -l;
-l, --login
Make the command a login shell. A - is prepended to the name of the command to be executed;
-v, --verbose
Be a bit more verbose;
-w, --wait
wait for command to complete. If -w and -s are used together then openvt will switch back to the controlling terminal when the com-
mand completes;
-V, --version
print program version and exit;
-h, --help
show this text and exit.
-- end of options to openvt.
NOTE
If openvt is compiled with a getopt_long() and you wish to set options to the command to be run, then you must supply the end of options --
flag before the command.
EXAMPLES
openvt can be used to start a shell on the next free VT, by using the command:
openvt bash
To start the shell as a login shell, use:
openvt -l bash
To get a long listing you must supply the -- separator:
openvt -- ls -l
HISTORY
Earlier, openvt was called open. It was written by Jon Tombs <jon@gtex02.us.es or jon@robots.ox.ac.uk>. The -w idea is from "sam".
SEE ALSO chvt(1), doshell(8), login(1)19 Jul 1996 V1.4 OPENVT(1)