07-01-2008
File handling, getopts command in unix
I need to create a shell script having the menu with few options such as
1. Listing 2. Change permissions 3. Modify Contents 4. Delete Files 5. Exit
1. For 1. Listing: Display a special listing of files showing their date of modification and access time (side by side) along with their permissions, sizes and filenames. The script should accept any number of arguments to display a selective listing and should abort if no filenames are specified as arguments. Provide headers for the columns and take care of all validations.
Note: Files have to be searched in present working directory only
2. For 2. Change permissions: Accept files and the permissions to be made available. Change the permissions accordingly.
3. For 3. Modify Contents: Accept a file name and use any editor to modify the contents as per user's choice
Note: Consider only .txt files, else modifying contents of binary files will lead to them being corrupted. So, exit if file is not a .txt file.
4. For 4. Delete Files: Accept a file name(s) and delete the file if available, else display error message
5. For 5. Exit : Exit the application
6. For implementing these options use getopts command appropriately.
can some one help me ?
Thanks in advance
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi All,
I want to read a file in UNIX line by line.
Can u suggest me any command for this? (4 Replies)
Discussion started by: VENC22
4 Replies
2. UNIX for Dummies Questions & Answers
Hi, I'm having problems with a script where I wanted every single option specified in the command line to have an argument taken with it, but for some reason only d works in the code I will be showing below.
For example if I did ./thisfile -a something
it would come up with "a chosen with " as... (2 Replies)
Discussion started by: IceX
2 Replies
3. Shell Programming and Scripting
Hi ,
Is there any way to achieve following using perl program (i.e without using system command).
1.system ("echo 'test' > /usr/spool/ship.csv");
2.system ("cat /usr/ajay_test* >> /usr/spool/RAM/work/patil.csv");
3.system("> /usr/spool/ajay.txt");
e.g
for system("rm -f... (1 Reply)
Discussion started by: ajaypatil_am
1 Replies
4. UNIX for Dummies Questions & Answers
Hi all,
I have a requirement here where I am dealing with a dynamic file. Each record in the file can contain anywhere between 1(min) to 42(max) Reject codes. For example I may have one record in the file having 3 reject codes and another record having 5 reject codes. The reject codes will be... (2 Replies)
Discussion started by: sujainarayan
2 Replies
5. Shell Programming and Scripting
hai all
I am new to the world of shell scripting
I wanted to extract two columns from multiple files say around 25 files
and i wanted to get the separate outfile for each input file
tired using the following command to extract two columns from 25 files
awk... (2 Replies)
Discussion started by: hema dhevi
2 Replies
6. Shell Programming and Scripting
I have been doing automation of daily check activity for a server, i have been using sqls to retrive the data and while loop for reading the data from the file for several activities. BUT i got a show stopper the below one.. where the data is getting store in $temp_file, but not being read by while... (1 Reply)
Discussion started by: KuldeepSinghTCS
1 Replies
7. Shell Programming and Scripting
Hello All,
I have shell script as below in a.ksh.
#! /usr/bin/ksh
while getopts a: b: ab:f: VAR
do
case $VAR in
a) A=${OPTARG}
echo $A;;
b) B=${OPTARG}
echo $B;;
ab) AB=${OPTARG}
echo $AB ;;
f) F=${OPTARG}
echo $F ;;
esac
done
When I execute sh a.ksh -a 1 -b 2 -ab 3 -f 4 as below... (7 Replies)
Discussion started by: tonsat
7 Replies
8. Shell Programming and Scripting
How can I say one of the options is required? can I use an if statement?
let say:
while getopts ":c:u:fp" opt; do
case $opt in
c) echo "-c was triggered, Parameter: $OPTARG" >&2;;
u) echo "-u was triggered, Parameter: $OPTARG" >&2;;
f) echo "-u was triggered,... (2 Replies)
Discussion started by: bashily
2 Replies
9. Shell Programming and Scripting
I have a huge file semicolon( ; ) separated records are Pipe(|) delimited.
e.g
abc;def;ghi|jkl;mno;pqr|123;456;789
I need to replace the 50th field(semicolon separated) of each record with 9006. The 50th field can have no value e.g. ;;
Can someone help me with the appropriate command. (3 Replies)
Discussion started by: Gurkamal83
3 Replies
10. Shell Programming and Scripting
Hi Guys,
I have created a script for our automated DB creation, it works fine with default option(-d).
$ ./test_db.ksh -d abc 11 dev
-d is Default option
ORACLE_SID=abc
ORACLE_VERSION=11
ENV_TYPE=dev
For creating a customized DB, i thought of giving the user different options.... (8 Replies)
Discussion started by: veeresh_15
8 Replies
LEARN ABOUT SUSE
ansi_ctrlu
term::ansi::ctrl::unix(n) Terminal control term::ansi::ctrl::unix(n)
__________________________________________________________________________________________________________________________________________________
NAME
term::ansi::ctrl::unix - Control operations and queries
SYNOPSIS
package require Tcl 8.4
package require term::ansi::ctrl::unix ?0.1?
::term::ansi::ctrl::unix::import ?ns? ?arg...?
::term::ansi::ctrl::unix::raw
::term::ansi::ctrl::unix::raw
::term::ansi::ctrl::unix::columns
::term::ansi::ctrl::unix::rows
_________________________________________________________________
DESCRIPTION
WARNING: This package is unix-specific and depends on the availability of two unix system commands for terminal control, i.e. stty and
tput, both of which have to be found in the $PATH. If any of these two commands is missing the loading of the package will fail.
The package provides commands to switch the standard input of the current process between raw and cooked input modes, and to query the size
of terminals, i.e. the available number of columns and lines.
API
INTROSPECTION
::term::ansi::ctrl::unix::import ?ns? ?arg...?
This command imports some or all attribute commands into the namespace ns. This is by default the namespace ctrl. Note that this is
relative namespace name, placing the imported command into a child of the current namespace. By default all commands are imported,
this can howver be restricted by listing the names of the wanted commands after the namespace argument.
OPERATIONS
::term::ansi::ctrl::unix::raw
This command switches the standard input of the current process to raw input mode. This means that from then on all characters typed
by the user are immediately reported to the application instead of waiting in the OS buffer until the Enter/Return key is received.
::term::ansi::ctrl::unix::raw
This command switches the standard input of the current process to cooked input mode. This means that from then on all characters
typed by the user are kept in OS buffers for editing until the Enter/Return key is received.
::term::ansi::ctrl::unix::columns
This command queries the terminal connected to the standard input for the number of columns available for display.
::term::ansi::ctrl::unix::rows
This command queries the terminal connected to the standard input for the number of rows (aka lines) available for display.
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category term of
the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for
either package and/or documentation.
KEYWORDS
ansi, columns, control, cooked, input mode, lines, raw, rows, terminal
COPYRIGHT
Copyright (c) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>
term 0.1 term::ansi::ctrl::unix(n)