If what you are trying to do is to create a directory and create a script (test3.sh) that is a copy of another script (test2.sh) with an mv command added after line 36 then I think the following does what you want. You haven't said what shell you're trying to use for this script, so I'm assuming a standards conforming shell such as ksh or bash. (I used ksh while I was testing this script.) Assuming that is correct, there are a couple of problems:
You can't have a minus sign in a function name. (I changed create-new to create_new to solve this problem.)
It is hard to get the quotes correct using sed to transform test2.sh into test3.sh. (In this case I found it much easier to use a here-document with ed instead of trying to get the editing command arguments specified correctly with sed.)
I added an additional case to provide a usage message (since I kept forgetting to add arguments while I was testing the script.
I added matching ('s to the cases in your switch because I use showmatch while editing scripts and I find it easier to read when I do that.
Anyway, does this do what you're trying to do?
If not, you're going to have to actually show us exactly what you want to appear in test3.sh rather than showing us the commands that you're using to create a test3.sh that does not contain what you want.
I also note that your script has a case "remote" that calls the undefined function "remove". I assume one of these is misspelled, but since you haven't given us any indication of what should happen when $1 is not "create", I left it as is.
Hello,
My appologies for asking a very basic question but...
In a shell, I enter:
echo tit | sed -e s/tit/tat/g
This returns:
tat
as expected.
But when I enter:
set test = `echo tit | sed -e s/tit/tat/g`
echo $test
This returns an empty line.
Why is this so and how... (3 Replies)
I have tried everything I can think of to get sed to change line N of a file to the contents of a variable. I have Googled the Internet, and I find lots of people telling how to use variables with the "Substitute" command, but no one telling how to use variables with the "Change" command.
I... (4 Replies)
This i will print the second line of a file
sed -n '2p' test2
The use of a variable is impossible here.
a=1
while ; do
line=`sed -n '$a p' test2`
# do some things here with the line variable
a=`expr $a + 1`
done
But the uotput of sed command is 'p'..... What can i do to use a variable... (2 Replies)
Ok, so, let's say I have the variable $GMAILID....How can I use it with sed command so to replace a string in a file? e.g.:
sed -i 's/$GMAILID/test@gmail.com/' /home/$USER/Desktop/sendmail (4 Replies)
Hi all,
Hereby wish to have your advise for below:
Main concept is
I intend to get current directory of my script file.
This script file will be copied to /etc/init.d.
A string in this copy will be replaced with current directory value.
Below is original script file:
... (6 Replies)
I have a file having some text like:
PATH_ABC=/user/myLocation
I have to replace "/user/myLocation" with a session variable say, $REPLACE_PATH,
where $REPLACE_PATH=/user/myReplaceLocation
The following sed command is not working. It is writing PATH_ABC=$REPLACE_PATH in the file
... (2 Replies)
Hi,
I have a file where I want to replace the 15th field separated by comma, only on specific lines matching lots of different conditions.
I have managed to read the file line by line, within the loop my line is held in a variable called $line
I assume this will be using sed (maybe... (5 Replies)
for file in `ls /tmp/*_sw_list`; do
/usr/bin/sed -i '' '1,/^Software\ Update/d' $file
done
In my script, this doesn't work. I can copy-and-paste it, and it works. Enabling debugging shows it is resolving the file name correctly... it isn't an issue with special characters in the filename. ... (3 Replies)
My current line command is as follows:
echo -n "text: " ; grep "blah text" ../dir1/filename | wc -l
The output to the screen is as needed, but how do I print to a text file? (9 Replies)
Hi All
I have one file with multiple lines in it, each line has static text and some variable enclosed in <<filename>> as well. e.g. as below
123, <<file1.txt>> this is my name, I stay at <<city.txt>> Thanks for visiting
348384y, this is my name <<fileabc.txt>>, I stay at near the mall of... (8 Replies)
Discussion started by: reldb
8 Replies
LEARN ABOUT CENTOS
wdmd
WDMD(8) System Manager's Manual WDMD(8)NAME
wdmd - watchdog multiplexing daemon
SYNOPSIS
wdmd [OPTIONS]
DESCRIPTION
This daemon opens /dev/watchdog and allows multiple independent sources to detmermine whether each KEEPALIVE is done. Every test interval
(10 seconds), the daemon tests each source. If any test fails, the KEEPALIVE is not done. In a standard configuration, the watchdog timer
will reset the system if no KEEPALIVE is done for 60 seconds ("fire timeout"). This means that if a single test fails 5-6 times in row,
the watchdog will fire and reset the system. With multiple test sources, fewer separate failures back to back can also cause a reset, e.g.
T seconds, P pass, F fail
T00: test1 P, test2 P, test3 P: KEEPALIVE done
T10: test1 F, test2 F, test3 P: KEEPALIVE skipped
T20: test1 F, test2 P, test3 P: KEEPALIVE skipped
T30: test1 P, test2 F, test3 P: KEEPALIVE skipped
T40: test1 P, test2 P, test3 F: KEEPALIVE skipped
T50: test1 F, test2 F, test3 P: KEEPALIVE skipped
T60: test1 P, test2 F, test3 P: KEEPALIVE skipped
T60: watchdog fires, system resets
(Depending on timings, the system may be reset sometime shortly before T60, and the tests at T60 would not be run.)
A crucial aspect to the design and function of wdmd is that if any single source does not pass tests for the fire timeout, the watchdog is
guaranteed to fire, regardless of whether other sources on the system have passed or failed. A spurious reset due to the combined effects
of multiple failing tests as shown above, is an accepted side effect.
The wdmd init script will load the softdog module if no other watchdog module has been loaded.
wdmd cannot be used on the system with any other program that needs to open /dev/watchdog, e.g. watchdog(8).
Test Source: clients
Using libwdmd, programs connect to wdmd via a unix socket, and send regular messages to wdmd to update an expiry time for their connection.
Every test interval, wdmd will check if the expiry time for a connection has been reached. If so, the test for that client fails.
Test Source: scripts
wdmd will run scripts from a designated directory every test interval. If a script exits with 0, the test is considered a success, other-
wise a failure. If a script does not exit by the end of the test interval, it is considered a failure.
OPTIONS --version, -V
Print version.
--help, -h
Print usage.
--dump, -d
Print debug information from the daemon.
--probe, -p
Print path of functional watchdog device. Exit code 0 indicates a
functional device was found. Exit code 1 indicates a functional device
was not found.
-D
Enable debugging to stderr and don't fork.
-H 0|1
Enable (1) or disable (0) high priority features such as realtime
scheduling priority and mlockall.
-G name
Group ownership for the socket.
-S 0|1
Enable (1) or disable (0) script tests.
-s path
Path to scripts dir.
-k num
Kill unfinished scripts after num seconds.
-w path
The path to the watchdog device to try first.
2011-08-01 WDMD(8)