I need to compare a value with different fixed value. Below is the code concept I implemented in my bash script but its giving me error.
Here "a' is the nameserver value that I extract using command line from /etc/resolv.conf. I did not put command here.
#! /bin/bash
a=1.2.3.4
if [ $a == 1.2.3.4 || 5.6.7.8 || 8.9.1.4]
then
echo " You have correct ntpserver"
else
echo"wrong ntpserver"
fi
Am I comparing the value correctly or any suggestion?
Thank you
This is my script and the syntax to run this script is give ip and next will be the file or script you want to perform on remote server
#!/bin/bash
# The private key used to identify this machine
IDENTITY_KEY=/home/adnew.pem
syntax()
{
echo "Syntax: Ec2.sh server_ip scriptFile]"
echo "For example: ./Ec2.sh server_ip scriptFile"
exit 1
}
if [ $# -ne 2 ]
then
echo not enough arguments
syntax
fi
echo "Running script $2 on $1"
ssh -ttq -i $IDENTITY_KEY ec2-user@$1 sudo -i 'bash -s' < $2
exit
exit
echo "Done"
on script file i have give for testing
touch /root/test
ls /root/test
exit
exit
it makes the file but do not show the ls output by giving error
tcgetattr: Inappropriate ioctl for device
exit
what I have to do ??
Apologies. I've been out of Unix for 14 years, and the gears have rusted. Also, Unix has changed - enough similarities to memory that I'm pretty comfy though.
Glad to see lots of info available via google. However changes are going to take getting used to. Have set up a testbed of 3 nearly identical machines, hoping to make an (at home) private network where I can automate installs and set-ups using NIS and NFS (Similar to work I once did).
Have found useful scripts interspersed with comments, would like to copy and paste them to a bash script that:
Reads the line.
Echos the line.
Reads the reply.
Executes what is typed.
Essentially, by making myself type (or copy & paste) the commands I think I'll become familiar.
Figured I'd use a spreadsheet, select the file, and paste into column B of the spreadsheet. In column A I'd paste:
echo "
and in column C I'd paste:
"
Then I'd cut and paste into a text document, insert the lines:
read A
$A
behind every command necessary to the actual task.
Figured I'd have to escape the ' and ".
Ran a test (test.bash):
#!/bin/bash
for i in `seq 1 10`;
do
echo "Enter a command:"
read A
echo "Trying $A"
$A
done
works fine when I type
ls -alg
but not so when I type
ls -alg | grep dwrx
so I'm wondering if someone has a suggestion?
Thanks for any ideas.
I am writing a script to check whether a "sysinfo" is installed in a system or not. sysinfo is a tool that gives information about the system. Its is installed in /usr/local/bin. so at CLI when I type sysinfo, it will display output.
#!/bin/bash
sysinfo=`/usr/local/bin/sysinfo`
echo "$sysinfo"
if [ "$?" = 0 ];then
echo "sysinfo installed"
else
echo "Please install sysinfo"
fi
Concept is, I run the command if it is present, it will show output and exit status of command is 0 else it is not installed. But it is not working as expected. Any thoughts , idea, suggestion.
hi
I try to assign return from a _error_handler_function to a variable
this is just a test( dummy test ) not a really case
#!/bin/bash
logfile="/dev/shm/log.err"
exec 2>$logfile
_err_handler(){
v=$(cat $logfile|grep dummy|wc -l);
rm $logfile
echo $v
}
trap _err_handler ERR
x=$(dummy);
echo "x value is $x "
z=$(notrap)
echo "z value is $z"
expected output :
bash-4.1$ sh test2.sh
x value is 1
z value is 0
what is wrong here and how should I fix?
thanks in advance
I'm trying to loop through a query in SQLDeveloper by passing the query a different Period and I'm having a problem getting the syntax correct.
Individually the following works correctly on its own:
Code:
#!/bin/bash
for i in `seq -f "%02g" 1 5`;
do
echo $i
done
$ ./test.sh
1
2
3
4
5
the following also executes correctly:
Quote:
sqlplus table1/$userpass@Mytable <<EOF
@./sqlcode.sql $i
EOF
but when I try to wrap the loop around my sqlplus command
Code:
#! /bin/sh
userpass=read
for i in `seq -f "%01g" 1 3`;
do
sqlplus -S table1/$userpass@Mytable <<EOF
@./sqlcode.sql $i
EOF
done
I get the following error:
./test.sh: line 13: syntax error: unexpected end of file
Does anyone have any ideas on what's going on?
Hi Everyone,
I need some help on my bash script, I'm trying to rename a certain line in a file which might be 1 or more.
IDXCOUNT=`grep -c 'index .* on ' $FILENAME`;
for n in $(eval echo {1..$IDXCOUNT});
do
timestamp=$(date +"%s");
echo "Renaming index idx_$timestamp..";
if [ $n -eq 1 ]; then
sed -i "0,/^index [^)]* on /s/index idx_$timestamp on /" $FILENAME;
My problem is, if the sed target is 2 or more it will generate an idx_$timestamp that will cause duplicate index value when the script finish. My goal is to have the script recognize that when there are multiple index in the file, it will try to rename it one by one.
I'm new to bash so I'm not sure if I explained my issue well but I will appreciate any help!!
Thanks!
Hi guys,
i'm beginner with Unix, I tried my best, but I Really don't know how to finish it .
here's my problem : I have to do something like Student system - student's name | subjects | mark |credits.
after starting script it will ask you for Student's name, then which subject, then the mark will appear.
It's a homework, and I have my own idea how to solve it, but cannot finish it, i don't want complete solution, just a help!
Code:
#!/bin/bash
echo "Students name"
echo -n "Enter student's name: "
read name
echo
case $name in
Example1|Math) echo "C" ;;
Example2|Programming) echo "D" ;;
Example3|WWW) echo "A" ;;
Example4|Economie) echo "-" ;;
esac
I don't now how to bring together case with second things which is "enter subject".
I appreciate any help
I am have a bash script like this:
#!/bin/bash
while true;
do
(printf %s "$(date '+%A %W %Y %X')"; echo -n ", " ; printf %s "$(ps -eo pcpu,pmem,comm | grep statsd)") >> tope.txt;
sleep 2;
done
What I want is the output of this command be entered into tope.txt like this:
Friday 20 2015 11:28:21, 0.0 0.4 /usr/libexec/systemstatsd
but what I get is output like this in multiline. :
Friday 20 2015 11:28:21
,
0.0 0.4 /usr/libexec/systemstatsd
What can I do to fix this?
Hello,
They gave me this:
Code:
#!/bin/bash
# Write error message on stderr and die
function die() {
echo "$@" >&2
exit 1
}
# Load var from properties files
function load() {
for propertie in "$@" ; do
[[ -f "${propertie}" ]] || die "load() : \"${propertie}\" don't exist !"
while read ; do
echo "${REPLY%=*}"
echo "${REPLY#*=}"
[[ -n "${REPLY%%=*}" && -z "${REPLY#*=}" ]] || die "load() : Variable \"${REPLY%%=*}\" is empty!"
eval "${REPLY%%=*}"=\'"${REPLY#*=}"\'
done < "${propertie}"
done
}
load "manage_srcds.conf"
echo "SRCDS_TICKRATE=$SRCDS_TICKRATE"
echo "SRCDS_SCREEN=$SRCDS_SCREEN"
echo "SRCDS_SRCDS_GAME_NAME=$SRCDS_GAME_NAME"
echo "SRCDS_MAXPLAYERS=$SRCDS_MAXPLAYERS"
but, return:
Quote:
###################################################
###################################################
load() : Variable "###################################################" is empty!
cat manage_srcds.conf
I just wish that there was no empty variable excluding those who do not have integer.
Best regards,
Hello, I am trying to implement this script, but for some reason, it limits to pinging 192.1681.1 and then 192.168.1.2 infinitely.
Any idea what is wrong with it? Thanks!
Quote:
PREFIX=192.168.1
OCTET=1
while [ "$OCTET" -lt "255" ]; do
echo -en "Pinging ${PREFIX}.${OCTET}..."
ping -c1 -w1 ${PREFIX}.${OCTET}
if [ "$?" -eq "0" ]; then
echo "OK"
else
echo "Failed"
let OCTET=$OCTET+1
fi
done