[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ale] Bash scripting question #2
Dow Hurst wrote:
> So the || in the do loop says to only execute the echo if the test of
> the link being a file that exists returns true?
No, it's a logical or. The point is that even though the sym link
exists, if you test for existance of the file, and the file is not
there, it will return false.
To test to see if it's a sym link you would do
test -L foo
>
> I have a script that I'd like to have watch 10 files and when the last
> one is removed, then move on to the next command in the script. I
> initially tried testing for the existence of all 10 files but I know I
> have the syntax wrong.
>
> Here is the while loop that failed:
>
> ## Wait and watch for locks to disappear
> cd $CWD
> LK=biased.lck
> TERM="BatchMin normal termination"
>
> while :
> do
>
> if [ -f $CWD/00/biased/$LK || $CWD/01/biased/$LK ||
> $CWD/02/biased/$LK || $CWD/03/biased/$LK || $CWD/04/biased/$LK \
> || $CWD/05/biased/$LK || $CWD/06/biased/$LK ||
> $CWD/07/biased/$LK || $CWD/08/biased/$LK || $CWD/09/biased/$LK ]
You want to use:
if [ -f foo -o -f bar -o -f foobar ]; then doit; fi
Different syntax inside the brackets.
--
Until later, Geoffrey