Programming :: Bash - Expression Is Always Evaluating To True
Jun 7, 2011
This line if [[ $hamachi_reachable = true && $lan_reachable = true ]]; then is always evaluating to true. I gave two ips that are not valid, so that both variables would become false yet the whole expression is evaluating as true. With that set -x in there, I get this output.
Where am I going wrong?
Code:
View 11 Replies
ADVERTISEMENT
Sep 5, 2010
I blame myself but I am lazy person. Now I am trying to learn a bit a bash scripting. But saving any script to see how it works is so boring. You know these exercises:
Code:
Now save this in a file - say helloworld.sh (haha), chmod and execute to see
Code:
Is there a way to execute text as a script? I mean
Code:
View 6 Replies
View Related
May 23, 2011
I'll try to be clear but I think I'm in a mess with my code right now, so it may appear here too
Here is a function. The part I want you to see is the 'eval' sentence.
This works.
It evaluates ${SourceTxt} (which is $1), takes away a part of it and uses it as an array to put data in.
That's alright.
Code:
Now, later, I NEED to count the number of elements in the array(s).
So, I try to do something like....
Which gives me the evaluated name ('#txtFields_email_customers[@]' e.g)
Or
Which gives me nothing....
I was wondering if I was reaching the limits of bash in this kind of capabilities, or if there is a.... bash-like solution. I.e. a good solution
View 7 Replies
View Related
Mar 18, 2010
I do not understand bash' syntax regarding the use of ((<arithmetic expression>)). $((<arithmetic expression>)) is tokenised to a single word. OK.
Code:
In isolation
Code:
It may not be used where a word is expected. This generates a syntax error. Why?
Code:
View 6 Replies
View Related
Sep 16, 2010
I had a script once that had in it a while true; do and read lines or data from a file similarly to a while read; do. I have a script I'm working on now where I'm trying to "prove the negative" that certain substrings culled from one file do not appear in another file. I'll try to explain what I mean with an example. An item in one list might be
Code:
[URL]
But the other list may only have
Code:
harvey1996nicks:Six stores in north London
harvey1997nicks:Three stores in Bristol
harvey1999nicks:Eight stores in the lower Midlands
The problem is, other items in the first list do match items in the second. The script I'm drawing this from has already pulled those out and written them to one (or several) lists that I've been able to use with other programs (Exiv2 specifically). The furthest I've bothered to go in the direction of "proving the negative" is a slow "if/then/fi" loop that looks like this:
Code:
linecheck=$[linecheck+1]
if [[ "$linecheck" == "$axe" ]] && [[ "$matchX" == "" ]]; then echo -e $file>>nomatches.txt; fi
linecheck is counting the lines of the second file -- the one with the designations or "labels" (the "so many stores in ..." from my example) -- as they are checked against the file names in the first (the "harvey199*nicks.jpg" etc of my example. axe is the number of lines in that first list (culled from a cat |wc -l at the beginning of the script). matchX is the variable the "prove the positive" script used for matches, one list to the other, which then got written line by line to a text file.
View 1 Replies
View Related
Nov 17, 2010
Quote:
#!/bin/sh
for i in {1..10}
do
for j in {1..50}
[code]....
The first echo generates something like: abc.de.fgh The second echo generates:
View 3 Replies
View Related
Dec 13, 2013
I am trying to learn how to use true type fonts in SDL using libsdl-ttf. I am trying to use the font "FreeSans.ttf" but my program prints out the message "Couldn't open FreeSans.ttf." Any way to get a list of what fonts true type fonts exist using C++ and SDL?
View 2 Replies
View Related
Oct 6, 2010
I want to translate this .fdi clause
Quote:
<match key="info.product" string="PS/2 Generic Mouse">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>[code].....
into its Xorg equivalent. What does it look like?
View 1 Replies
View Related
May 18, 2011
How to manage the find command to return true or false if a file was found/or not? I tried to man find but didn't found anything.
View 12 Replies
View Related
Nov 30, 2010
I've found the following script to copy files specified by a find output into a target directory.Code:find $SOURCE -name "*.avi" | xargs -i cp -v {} $TARGETWhat exactly does the colored expression mean? Does it refer to an array?
View 3 Replies
View Related
Sep 2, 2010
I am trying myself on regular expressions. A read on [URL]/regex.htm) that {x} means search X times preceding character. So, why is this :
Code:
wstation~> echo '123456789' | grep [0-9][0-9][0-9]
123456789 # MATCH !! I have 3 numbers in a row.
[code]...
View 2 Replies
View Related
May 7, 2011
I've spent most of the evening browsing the web, trying many things I've found on various forums, but nothing seems to work.
I have a test.txt file containing many lines like the following ones :
...
<insert_random_text>228.00 €<insert_more_random_text>
<insert_random_text>17.50 €<insert_more_random_text>
<insert_random_text>1238.13 €<insert_more_random_text>
...
And I want to extract :
...
228.00
17.50
1238.13
...
There is always one occurrence of € in each line. I want the numeric value that precedes this € occurrence. The random text (before and after) may contain numbers too, so the € may be important to parse, in order to correctly identify the number to return. The last character that precedes the number to extract is always a ">" (coming from an HTML tag).
View 9 Replies
View Related
Jan 2, 2010
I'm working with javascript and trying to replace all instances of a Roman character in a string with nothing. How do I assign var reg to all Roman characters? In UTF8, capital letter A is U0041 and at the other end, small z is UFF5A.
So, I'd like to do something like:
var reg = u0041 - UFF5A;
str1 = str.replace(reg, '');
I think you get the idea. I have no idea if that can be done. The idea is to take this string (for example): str = make a door-to-door[house-to-house] visit / ring every doorbell." And take out all the Roman characters and define it as str1. And then take out all the Korean characters (u1100-uFFDC) and define it as str2. In fact, a WAY more useful thing to do would be to replace the instance of this: [u1100-uFFDC]+" "+[u0041-UFF5A] with [u1100-uFFDC]+","+[u0041-UFF5A] so that the output would be a .csv file.
View 5 Replies
View Related
Mar 16, 2011
i cant use regular expression in replace function. I want to do this
a = ' Bad boy'
b = a.replace("b[aA]d", '')
Ofcourse this is a simple example for my query. Its not working so shall i assume regex dont work with replace function ?
View 1 Replies
View Related
May 27, 2009
I need to use sed to edit a file that contains just one line. This should be pretty simple, but I've googled and can't seem to figure it out. I need to match everything from a certain string up until the first comma in the line. There are multiple commas in the line and my matching pattern is matching up until the last comma, not the first.
Here is what I'm trying:
As you can see it is matching up until the last comma. Seems like the .* is matching any character including the other commas. The output from this that I am hoping to achieve:
How can I get the regular expression to match from asdf: up until the first comma?
View 3 Replies
View Related
May 15, 2010
I'm writing a loganalysis application and wanted to grab apache log records between two certain dates. Assume that a date is formated as such: 22/Dec/2009:00:19 (day/month/year:hour:minute) Currently, I'm using a regular expression to replace the month name with its numeric value, remove the separators, so the above date is converted to: 221220090019 making a date comparison trivial.. but.. Running a regex on each record for large files, say, one containing a quarter million records, is extremely costly.. is there any other method not involving regex substitution? here's the function doing the convertion/comparison
[Code]...
View 13 Replies
View Related
May 3, 2010
I found such simple example of awk
Code:
awk '
BEGIN { a = "1abc 2def"
b = gensub(/(.+) (.+)/, "\2 \1", "g", a)
print b }'
However I don't understand why the regular expresion in parentheses doesn't work how I woud expect. If I delete the .+ so it does the same.
Code:
awk '
BEGIN { a = "1abc 2def"
b = gensub(/() ()/, "\2 \1", "g", a)
print b }'
I wanted to use a regular expression in parantheses like ([/+[]()]) to get the specific letters.
Code:
awk '
BEGIN { a = "1abc 2def"
b = gensub(/([/+[]()])/, "//\1", "g", a)
print b }'
But why the regexp in () isn't working
View 16 Replies
View Related
Apr 30, 2011
I remember reading that using sed, you can do this with parentheses: s/abc(something)def/(something)else/g I can't find an explanation of how to do something like this with Awk. Say you have this in an HTML file, where (number) stands for a one or two-digit number:
<sup>(number)</sup>
And you want to change that to this:
<a name="(number)t" href="#(number)b"><sup>(number)</sup></a>
How would this be possible? Would you have to use sed?
View 4 Replies
View Related
May 19, 2010
I have a very, very large log file (360MB) that I'm trying to thin out. As it turns out the majority of this file has entries that aren't necessary so I'm attempting to build a command that will strip these out. The following command works to display only the data that I do not want:
Code:
cat xml_results.log | grep -B 6 -A 5 "YYY ZZZ"
This displays exactly the data I want to delete from the file by displaying the expression and six lines above it and five lines below it. However I'm at a loss as to how to remove this data from the output and display everything else. I looked into the -v option with grep redirecting the output to a new file:
Code:
cat xml_results.log | grep -B 6 -A 5 -v "YYY ZZZ" > xml_filtered_results.log
However it doesn't work, the new file is the same size as the old one. What am I doing wrong? Is there a better method of doing this? I'm a bit out of my element since the method I'd normally use can't handle files of this size.
View 7 Replies
View Related
May 20, 2011
Here is a segment from a script (the script is complicated so I'll just post the problem)
Code:
echo "sudo mount -o loop $eFile $eMount" > syntax.txt
sudo mount -o loop $eFile $eMount &> error.log
For debugging, I have the first line that echoes back the command being run (so I can find obvious syntax errors) and the second line runs the command.
The first line returns:
Code:
sudo mount -o loop /home/abigail.dunning/Training/1994-2010 Linux Journal Master Collection.iso /media/iso/1994-2010 Linux Journal Master Collection
If this line is cut and pasted into a bash shell it runs and the mount occurs fine.
However, this is being run in a nautilus script and the output of the same mount command is the syntax for mount?
Code:
# contents of error.log
Usage: mount -V : print version
mount -h : print this help
mount : list mounted filesystems
[Code].....
View 8 Replies
View Related
May 26, 2009
Part of a perl script I am writing need to change the character at an index to upper case. Now i am new to perl and i am having some trouble getting it to do it. In c++ i would do something like
Code:
Now from what i understand the same thing is possible in perl using regular expressions. But i cant get it to work.
View 2 Replies
View Related
Mar 18, 2010
I have been battling with regular expressions and am a little lost. I want to find all my files that end with .la and have been trying this
Code:
slocate -r .la$
which finds them but also files like mozilla. The escaped full stop seems to be ignored however this works :
Code:
slocate -r \.la$
so why is the double escaping needed ?
View 3 Replies
View Related
Jun 29, 2010
how do I get this regular expression to work in an if/else statement? This is just a little script for learning BASH. don't be too harsh.
This script will test if a certain number of files with 1-4 in their filename exist and print their filename. An error message will be printed if not.
#
for i in `ls file[1-9]`
do
if [[ "$i" == *1-4 ]] ; then
echo "This file, $i, ends in a number between 1-4"
else
echo "Error, this file, $i, does not end with a number between 1-4"
fi
done
I get this error. ./file_test.sh: 13: [[: not found
View 2 Replies
View Related
Oct 13, 2010
I'm writing a Perl script to find an old key in a file and replace it with a new codefirst the program should find the old key in the input file. here is the way I used in my script. but it doesn't work.May you please let me know what is wrong and how I can correct it?the key is stored in the file in the following format:
PHP Code:
Key=("1234567" , someOtherVrable)
I want 1234567
[code]...
View 1 Replies
View Related
Feb 3, 2010
I was doing an exercise on Learning Perl, 3rd edition. (exercise chapter 10 btw) The problem asks to create a program that generates a random number and asks the user to guess. It should tell the user if the guess is lower or higher and exit if the user types either exit or quit. My code is the following:
Code:
#! /usr/bin/perl
$correct = int(1+rand 100);
[code]....
View 2 Replies
View Related
Feb 15, 2011
The following command would remove the leading astericks, spaces, slashes, tabs and is present in an awk script.
Code:
gsub(/^[/* ]*/,"")
The above code is working fine when i run in Cygwin on windows machine. But when i run in Ubuntum throws the following error.
Code:
awk: ./Format.awk: line 30: regular expression compile failed (bad class -- [], [^] or [)
^[
awk: 30: unexpected character ''
awk: ./Format.awk: line 30: runaway regular expression /,""); ...
View 2 Replies
View Related
Aug 26, 2010
I have made this:
Code:
from urllib import urlopen import re
current_site = urlopen("http://www.krak.dk/").read()
search = re.findall("((http://|https://|ftp://)|(www.))+(([a-zA-Z0-9.-]+.[a-zA-Z]{2,4})|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_?.'~]*)?", current_site)
[code]....
I only want to match complete URL's. how do i avoid matching the fragments ?
View 4 Replies
View Related
Jun 22, 2010
I have this regular expression
Code:
(@description ").*(";)
I want to match anything in between the quotes its working fine in JavaScript but its not working in my python program:
Code:
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import re
[code]....
View 3 Replies
View Related
Dec 8, 2010
I have something like the following in my expect script:
Code:
interact {
-nobuffer -re {^s
} {
[code]....
I have put the "^" anchor to match only those pattern that does not have anything before "s" e.g.
1.when I type "s" followed by "enter" key it should match.
2.if I type something like "chess" followed by "enter" key it shouldn't match. the second case is also being matched by the regular expression I have in my code.
View 4 Replies
View Related
May 28, 2010
I'm trying to math all class references in a C++ file using grep with regular expression. I'm trying to know if a specific include is usuless or not, so I have to know if there is a refence in cpp. I wrote this RE that searches for a reference from class ABCZ, but unfortunately it isn't working as I espected:
grep -E '^[^(/*)(//)].*[^a-zA-Z]ABCZ[]*[*(<:;,{& ]'
^[^(/*)(//)] don't math comments in the begging of the line ( // or /* )
.* followed by any character
[code]....
Well, I can get patterns like this:
class Test: public ABCZ{
class Test: public ABCZ {
class Test : public ABCZ<T>
[code]....
View 4 Replies
View Related