Please, when posting scripts, use the [ code ]....[ /code ]-tags. They make it a lot easier to read.
Quote:
Originally Posted by tainted2real
Hi Guys
I have this small Bash script - but it fails when I'm trying to run it.
./test.sh: [: too many arguments
The problem might be that your script is named "test" or in that "if [ ..." line.
Today all the "[...]"-mechanics are built into the shells, but back, in the good old days, there was a program called "test" and a link to this program called "[" (which is a legal program name, btw.). But the real program is called "test" and therefore it is unwise to call a script "test", like it would be unwise to call one "cat" or "grep".
When you write a line "if [ x = y ] ; then" you basically call this program "test" (respectively its link "[") and feed it "x = y ]" as parameters. "test" returns either "0" or "1" depending on what the outcome of the comparison is. Syntactically correct would also be:
The error message now says that you fed "test" too many arguments. This might be the case because one of your variables contain not what they supposed to contain. Another point to consider in your code is that you nowhere make sure the variables are of the right type: "-eq" is only valid for comparing two integer values. If your variables do not contain integers (a space somewhere, leading or trailing would suffice) the comparison would also fail.
Finally yo do not need variables because you can compare directly. Here is a somewhat revised version of your code:
I don't know your OS (guessing from the usage of the /proc-filesystem it is some Linux) and don't know exactly what is the form of /proc/interrupts is, but i would start looking at what awk does really extract from it:
Thank you! The script is working perfectly now....! The problem was
KEY1=`cat /proc/interrupts | grep 1: | awk '{print $2}'`
returned two values instead of one
line 5: #!/bin/bash
old=$(du -sh /home/andy/Downloads/myfile.iso)
while true; do
new=$(du -sh /home/andy/Downloads/myfile.iso)
if ;
then
break
fi
old=$new
xdotool getactivewindow key Ctrl
sleep 5
done
line 5: bash - Meaning of " (square brackets)... (9 Replies)
I have a SNMP agent that sends three arguments to the script to get a value at the end. The first is the LeafNumber, second is the request type (SET, GET, GETNEXT), and the last is a string that represents some value to be set(used only for set requests).
The agent string looks like this:
... (3 Replies)
Hi Experts ,
I have following code
if ; then
mv path /filename newdirpath
echo "K* files moved successfully to newdirpath \n"
else
echo "K* files DID NOT moved successfully to newdirpath \n"
fi
I am getting
"echo "K* files DID NOT moved successfully to newdirpath \n"... (19 Replies)
echo "the number from 1 to 10:"
i=1
while
do
echo $i
i=`expr $i+1'
done
above is the program i written in Linux O.S using vi editor
but i am getting the error that
while: line 3:
i am not understanding that why i am getting this error.
can any body please help me regarding this... (3 Replies)
i don't know what's wrong with the code, says too many arguments in the first two if statements. how to change it? thx.
the file is like in this format:
;dfs;dfdsf;fsd ff dsf;dfdffdfd; -f2 should be only one word with no space, but could be like this 'n/a', '**ABC'
while read line; do
... (1 Reply)
I can't find anything wrong with this line of code, it works when there is one file in the directory but more than one i get a "too many arguements2 error
if ; then
am i missing something? (3 Replies)
Ok so i had to create a file and put some random text into it which i did.
THen u make a script which takes 2 arguments.
The first being a line of text, the second being your newly created file.
The script should take the first argument and insert it into the very top (the first line) of... (1 Reply)