Sponsored Content
Full Discussion: Problem with Bash Script.
Top Forums Shell Programming and Scripting Problem with Bash Script. Post 302635207 by Corona688 on Friday 4th of May 2012 11:31:13 AM
Old 05-04-2012
It's certainly not going to work if you force the string to contain quotes. It will search for files with literal quotes in their names.

Also, just repeating the list won't work either. You need -name a -o -name b -o -name c, etc.

Paths can be used as-is, since find takes a literal list there.

You don't even need arrays here. The shell is perfectly capable of splitting strings at need.

So I'd just assemble a list in the $1, $2, ... variables and use it. Then you can pretty much just find "$@"

Code:
#!/bin/sh
paths="/test/a /test/b"
keywords="*car* *food*"

set -f # prevent *car* from globbing here
for X in $keywords
do
        if [ -z "$1" ]
        then
                set -- -name "$X"
        else
                set -- "$@" -o -name "$X"
        fi
done

echo find $paths -type f -ctime 1 '(' "$@" ')'

Code:
$ ./findl.sh

find /test/a /test/b -type f -ctime 1 ( -name *car* -o -name *food* )

$

It works in any and every bourne shell I have since it doesn't use arrays.

Last edited by Corona688; 05-04-2012 at 12:44 PM..
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

bash script problem

hi I am writing a bash script that uses dialog to get user input an diplay messages to user. I have a small problem dialog --inputbox "blabla" 20 50 2> /tmp/output VAR="'cat /tmp/output'" mkdir $VAR the code below requests user for a directory path to be created. But, if the user uses... (1 Reply)
Discussion started by: fnoyan
1 Replies

2. UNIX for Dummies Questions & Answers

Bash script argument problem

I'm having problems with bash scripts. If a bash script is called with no arguments, I always get "PHIST=!" as the first argument (i.e. this is what $1 equals). Why? Where does this come from, and how can I fix it? Nothing in the bash man pages refer to this mysterious default argument. (2 Replies)
Discussion started by: sszd
2 Replies

3. Shell Programming and Scripting

Problem in bash script

I have written a script and I get error and I don't understand why. neededParameters=2 numOfParameters=0 correctNum=0 while getopts "s:l:" opt do case "$opt" in s) serviceName= $OPTARG #errorline 1 numOfParameters= $numOfParameters + 1 ;; l) ... (12 Replies)
Discussion started by: programAngel
12 Replies

4. Shell Programming and Scripting

Simple bash script problem

#!/bin/bash cd /media/disk-2 Running ./run.sh it's not changing directory.Why? (6 Replies)
Discussion started by: cola
6 Replies

5. Shell Programming and Scripting

problem using variables in bash script

I am using variable to give the location of the file I am using but I get error. Here is the code: LogFile=/tmp/log.email echo -e "could not close the service - error number $error \n" > $LogFile well this is not all the code but is enough because the problem start when I try to use the... (3 Replies)
Discussion started by: programAngel
3 Replies

6. Shell Programming and Scripting

help with a bash script problem

hi to everyone :) i am new to linux and bash and i am trying to build a bash script, that is quite similar to the well known cmd 'split' ... ;) it is now already "working" ... i can use it like: ./splitfix.sh -v -s 10 foo ./splitfix.sh -s 10 -v foo ./splitfix.sh -s 10 foo ./splitfix.sh -v... (5 Replies)
Discussion started by: drjodo
5 Replies

7. Shell Programming and Scripting

Problem using grep in bash script

When it comes to programing and UNIX, I know just enough to be really really dangerous. I have written a python script to parse through a file that contains ~1 million lines. Depending on whether a certain string is matched, the line is copied into a particular file. For the sake of brevity,... (4 Replies)
Discussion started by: errcricket
4 Replies

8. Shell Programming and Scripting

Help with bash script problem

Hi, Below is my bash script: cat run_all.sh if && ; then Number_Count_Program $1.results $2.results > $1.$2.counts else Number_Split_Program $1.results $2.results > $1.$2.split fi After I run the following command: ./run_all.sh A B ./run_all.sh: line 1: Anybody advice to edit... (5 Replies)
Discussion started by: perl_beginner
5 Replies

9. Shell Programming and Scripting

Bash/awk script problem

Hi, I have 100 files containing different values in single column, I want to split those files in two separate files (file2 and file3) based on average value of first column of each file, for those files I am working on the following script #bin/bash for memb in $(seq 1 100) do awk... (4 Replies)
Discussion started by: dsp80
4 Replies

10. UNIX for Beginners Questions & Answers

Array problem in Bash Script

I am trying to write a Bash Script using a couple of arrays. I need to perform a countdown of sorts on an array done once daily, but each day would start with the numbers from the previous day. This is what I'm starting with : #!/bin/bash days=(9 8 7 6 5) for (( i = 0 ; i < ${#days} ; i++... (4 Replies)
Discussion started by: cogiz
4 Replies
BASHBUG(1)							      bashbug								BASHBUG(1)

NAME
bashbug - report a bug in bash SYNOPSIS
bashbug [--help] [--version] [bug-report-email-addresses] DESCRIPTION
bashbug is a utility for reporting bugs in Bash to the maintainers. bashbug will start up your preferred editor with a preformatted bug report template for you to fill in. Save the file and quit the editor once you have completed the missing fields. bashbug will notify you of any problems with the report and ask for confirmation before sending it. By default the bug report is mailed to both the GNU developers and the Debian Bash maintainers. The recipients can be changed by giving a comma separated list of bug-report-email-addresses. If you invoke bashbug by accident, just quit your editor. You will always be asked for confirmation before a bug report is sent. OPTIONS
--help Show a brief usage message and exit. --version Show the version of bashbug and exit. bug-report-email-addresses Comma separated list of recipients' email addresses. By default the report is mailed to both the GNU developers and the Debian Bash maintainers. ENVIRONMENT
DEFEDITOR Editor to use for editing the bug report. EDITOR Editor to use for editing the bug report (overridden by DEFEDITOR). SEE ALSO
bash(1), reportbug(1), update-alternatives(8) for preferred editor. AUTHOR
This manual page was written by Christer Andersson <klamm@comhem.se> for the Debian project (but may be used by others). GNU Bash 3.1 11 December 2007 BASHBUG(1)
All times are GMT -4. The time now is 04:44 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy