08-02-2010
How to write script in bash.
I am very new to Linux/Unix. Kindly assist the following:
I wish to write a
bash shell script called
how_many_to_go that calculates and prints the number of days, hours, minutes and/or seconds until the end of the current month (based on the output of the
date command).
- Do not make any assumptions about what month it is - the script should run properly in any month.
- Assume that it is not a leap year, so the number of days in any month is known (February has 28 days; April, June, September, and November have 30 days; All the rest have 31 days).
- The output should read "There are d days, h hours, m minutes, and s seconds until the end of the month" except as modified by the command line arguments below.
- The script should accept command line arguments as follows (assume that it's now 11:00:00 PM on January 30):
-
- how_many_to_go - print the number of days, hours, minutes, and seconds until the end of the month (e.g. "There are 1 days, 1 hours, 0 minutes, and 0 seconds until the end of the month")
- how_many_to_go h - print the number of hours, minutes, and seconds until the end of the month (e.g. "There are 25 hours, 0 minutes, and 0 seconds until the end of the month")
- how_many_to_go m- print the number of minutes and seconds until the end of the month (e.g. "There are 1500 minutes and 0 seconds until the end of the month")
- how_many_to_go s - print the number of seconds until the end of the month (e.g. "There are 90000 seconds until the end of the month")
Kenyatta University Kenya. Lecturer: Dr. Waweru Michael. Course Code. BBIT 202.
Regards
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hi, first congratulations on the nice forum!
Can anybody write script, which can make copy of some or all files of the current directory in new directory (called "backups", which must be made in the current directory, if it's not already exist). And bring out a massage (report) with the count... (7 Replies)
Discussion started by: Cecko
7 Replies
2. Shell Programming and Scripting
Hi,
root@server] df -h
121G 14G 101G 12% /home
147G 126G 14G 91% /backup
We having our site files and images are storing in
/backup/home/user/files/ through symbolic link created in /home directory pointing in /backup directory as following.
root@server] cd /home... (1 Reply)
Discussion started by: mirfan
1 Replies
3. Shell Programming and Scripting
I am newbie to UNIX. I came across this exercise in one the books.Can anyone help me with this question??????
Write a short Bash script that, given the name of a file as an argument,
reads the file name and creates a new file containing only lines which consist
of one word. Here is an example... (4 Replies)
Discussion started by: krthknaidu
4 Replies
4. Shell Programming and Scripting
Hi All
I am a new in scripting language and I would like help for you guys
I would like to create a file named constant.h and search into all files *.m in specific directory for a reg-exp @"LBL_]+" exp: @"LBL_75847" , and write those matchs to constant.h if there are not written (no... (15 Replies)
Discussion started by: molwiko
15 Replies
5. Shell Programming and Scripting
i'm trying to write a bash script that that will automatically extract zip files after the download.
i writed this script
#!/bin/bash
wget -c https://github.com/RonGokhle/kernel-downloader/zipball/master
CURRENDIR=/home/kernel-downloader
cd $CURRENDIR
rm $CURRENDIR/zipfiles 2>/dev/null
... (2 Replies)
Discussion started by: ron gokhle
2 Replies
6. Shell Programming and Scripting
Hi All,
I am unable to write the script for the below requirement.
Requirement:
Main table dir_ancillary table contain three column "dir_ancillary.table_name"," dir_ancillary.text_file_name ", "dir_ancillary.Include" .
This dir_ancillary contain undefined tables in the column... (2 Replies)
Discussion started by: Vineeta Nigam
2 Replies
7. Shell Programming and Scripting
Hi Team
I am trying to put together a nice small script to mount my lvm snapshot
Here are my objectives
1 Check whether snapshot is currently mounted. If so echo umount snapshot and exit from the script.
2 If it's not mounting, check whether the mount point exist, If so, create lvm... (0 Replies)
Discussion started by: fugeulu
0 Replies
8. UNIX for Dummies Questions & Answers
Hello experts, I need help writing individual files from a data matrix, with each new file being written every time there is a blank line:
From this
cat file.txt
col1 col2 col3
6661 7771 8881
6661 7771 8881
6661 7771 8881
col1 col2 col3
3451 2221 1221... (6 Replies)
Discussion started by: torchij
6 Replies
9. UNIX for Beginners Questions & Answers
Hello guys, I need some help. I am new in bash and I don't know how to automate the following script.
head -2 out1 > 1.fasta
sed ‘1,2 d' out1 > out2
rm out1
head -2 out2 > 2.fasta
sed ‘1,2 d' out2 > out1
rm out2
head -2 out2 > 3.fasta
sed '1,2 d' out2 > out1
rm out2
.......... (3 Replies)
Discussion started by: dellia222
3 Replies
10. UNIX for Beginners Questions & Answers
How would I write a value to a physical memory address?
I was able to read a physical memory address (for example, 0x400) using this line:
dd if=/dev/mem count=4 bs=1 skip=$(( 0x400 ))
But I get an error:
dd: 'standard input': cannot skip to specified offset
when I try to write using... (1 Reply)
Discussion started by: rabrandt
1 Replies
LEARN ABOUT CENTOS
pmdabash
PMDABASH(1) General Commands Manual PMDABASH(1)
NAME
pmdabash - Bourne-Again SHell trace performance metrics domain agent
SYNOPSIS
$PCP_PMDAS_DIR/bash/pmdabash [-C] [-d domain] [-l logfile] [-I interval] [-t timeout] [-U username] configfile
DESCRIPTION
pmdabash is an experimental Performance Metrics Domain Agent (PMDA) which exports "xtrace" events from a traced bash(1) process. This
includes the command execution information that would usually be sent to standard error with the set -x option to the shell.
Event metrics are exported showing each command executed, the function name and line number in the script, and a timestamp. Additionally,
the process identifier for the shell and its parent process are exported.
This requires bash version 4 or later.
A brief description of the pmdabash command line options follows:
-d It is absolutely crucial that the performance metrics domain number specified here is unique and consistent. That is, domain should
be different for every PMDA on the one host, and the same domain number should be used for the same PMDA on all hosts.
-l Location of the log file. By default, a log file named bash.log is written in the current directory of pmcd(1) when pmdabash is
started, i.e. $PCP_LOG_DIR/pmcd. If the log file cannot be created or is not writable, output is written to the standard error
instead.
-s Amount of time (in seconds) between subsequent evaluations of the shell trace file descriptor(s). The default is 2 seconds.
-m Maximum amount of memory to be allowed for each event queue (one per traced process). The default is 2 megabytes.
-U User account under which to run the agent. The default is the unprivileged "pcp" account in current versions of PCP, but in older
versions the superuser account ("root") was used by default.
INSTALLATION
In order for a host to export the names, help text and values for the bash performance metrics, do the following as root:
# cd $PCP_PMDAS_DIR/bash
# ./Install
As soon as an instrumented shell script (see INSTRUMENTATION selection below) is run, with tracing enabled, new metric values will appear -
no further setup of the agent is required.
If you want to undo the installation, do the following as root:
# cd $PCP_PMDAS_DIR/bash
# ./Remove
pmdabash is launched by pmcd(1) and should never be executed directly. The Install and Remove scripts notify pmcd(1) when the agent is
installed or removed.
INSTRUMENTATION
In order to allow the flow of event data between a bash(1) script and pmdabash, the script should take the following actions:
#!/bin/sh
source $PCP_DIR/etc/pcp.sh
pcp_trace on $@ # enable tracing
echo "awoke, $count"
pcp_trace off # disable tracing
The tracing can be enabled and disabled any number of times by the script. On successful installation of the agent, several metrics will
be available:
$ pminfo bash
bash.xtrace.numclients
bash.xtrace.maxmem
bash.xtrace.queuemem
bash.xtrace.count
bash.xtrace.records
bash.xtrace.parameters.pid
bash.xtrace.parameters.parent
bash.xtrace.parameters.lineno
bash.xtrace.parameters.function
bash.xtrace.parameters.command
When an instrumented script is running, the generation of event records can be verified using the pmevent(1) command, as follows:
$ pmevent -t 1 -x '' bash.xtrace.records
host: localhost
samples: all
bash.xtrace.records["4538 ./test-trace.sh 1 2 3"]: 5 event records
10:00:05.000 --- event record [0] flags 0x19 (point,id,parent) ---
bash.xtrace.parameters.pid 4538
bash.xtrace.parameters.parent 4432
bash.xtrace.parameters.lineno 43
bash.xtrace.parameters.command "true"
10:00:05.000 --- event record [1] flags 0x19 (point,id,parent) ---
bash.xtrace.parameters.pid 4538
bash.xtrace.parameters.parent 4432
bash.xtrace.parameters.lineno 45
bash.xtrace.parameters.command "(( count++ ))"
10:00:05.000 --- event record [2] flags 0x19 (point,id,parent) ---
bash.xtrace.parameters.pid 4538
bash.xtrace.parameters.parent 4432
bash.xtrace.parameters.lineno 46
bash.xtrace.parameters.command "echo 'awoke, 3'"
10:00:05.000 --- event record [3] flags 0x19 (point,id,parent) ---
bash.xtrace.parameters.pid 4538
bash.xtrace.parameters.parent 4432
bash.xtrace.parameters.lineno 47
bash.xtrace.parameters.command "tired 2"
10:00:05.000 --- event record [4] flags 0x19 (point,id,parent) ---
bash.xtrace.parameters.pid 4538
bash.xtrace.parameters.parent 4432
bash.xtrace.parameters.lineno 38
bash.xtrace.parameters.function "tired"
bash.xtrace.parameters.command "sleep 2"
FILES
$PCP_PMCDCONF_PATH
command line options used to launch pmdabash
$PCP_PMDAS_DIR/bash/help
default help text file for the bash metrics
$PCP_PMDAS_DIR/bash/Install
installation script for the pmdabash agent
$PCP_PMDAS_DIR/bash/Remove
undo installation script for pmdabash
$PCP_LOG_DIR/pmcd/bash.log
default log file for error messages and other information from pmdabash
PCP ENVIRONMENT
Environment variables with the prefix PCP_ are used to parameterize the file and directory names used by PCP. On each installation, the
file /etc/pcp.conf contains the local values for these variables. The $PCP_CONF variable may be used to specify an alternative configura-
tion file, as described in pcp.conf(5).
SEE ALSO
bash(1), pmevent(1) and pmcd(1).
Performance Co-Pilot PCP PMDABASH(1)