12-26-2013
[SOLVED] Bash syntax behaviour : [[ vs [
Quote:
Originally Posted by
Scrutinizer
In the case of single brackets, pathname expansion does get performed, however in the case of double brackets this is not the case, so in your example with single brackets after variable expansion of $RESTORE_FF.* to a_file.tar.gz.*, the pathname pattern gets expanded to a_file.tar.gz., so it would look for the literal file a_file.tar.gz. and in the case of double brackets for the literal file a_file.tar.gz.*, which does not exist. The example with single brackets will give a syntax error if more than one file with the given pattern exists.
Thank you very much.
Last edited by jcdole; 12-26-2013 at 03:04 PM..
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I'm trying to write a simple script that takes all the .tar.gz files in a directory and verifies them by using the gzip -tv command:
for zip in *.tar.gz
do
gzip -tv $zip
if ; then #Check return code from tar
echo "File ${zip} verified OK."
exit... (4 Replies)
Discussion started by: kelldan
4 Replies
2. Shell Programming and Scripting
I have a script that's meant to check the disk usage on a particular volume and delete the oldest logfile if it's over a certain percentage. It runs fine on a Linux machine, but on a Solaris one, I get this error:
diskspace_check.sh: syntax error at line 3: `diskspace=$' unexpected
I assume... (2 Replies)
Discussion started by: cara_k
2 Replies
3. Shell Programming and Scripting
Hi all,
Am trying to convert a script from ksh to bash :wall:. One of the sub is something like below:
#!/bin/bash
declare -a array01
step_01_test()
{
local count=0
ps -ef | grep watch | grep -v grep | awk '{ print $8 }' | while read line
do
let count=${count}+1
... (1 Reply)
Discussion started by: newbie_01
1 Replies
4. Web Development
ec2addtag --region us-west-1 vol1234 --tag Name=$nameinst;
It should execute
ec2addtag --region us-west-1 vol1234 --tag Name=webserver;
Instead it thinks that Name is equal to that variable. Please help. Thanks!
Please use code tags! (0 Replies)
Discussion started by: svalenciatech
0 Replies
5. Red Hat
Good morning
Recently we needed to change the password from a redhat 6.5 system that no one knew the root password.
Starting the system with the init=/bin/bash method took us to the following scenario:
system_vg active with only root_lv and tmpfs mounted.
our entries at fstab are like... (1 Reply)
Discussion started by: Ikaro0
1 Replies
6. Shell Programming and Scripting
while read line
do
mkdir $line
scp -r Docking_results/docking_$line.pdb $line/
cd /$line/
set a=`grep ENDMDL docking_'$line'.pdb | wc -l`
set b=`expr $a - 2`
csplit -k -s -n 3 -f docking_'$line'. docking'$line'.pdb '/^ENDMDL/+1' '{'$b'}'
foreach f (... (4 Replies)
Discussion started by: chrisjorg
4 Replies
7. Shell Programming and Scripting
Hello,
I have seen this syntax,
{ ;;};quite often and I don't know what it means exactly.
It seems like a distinctive thing of Bash, so it's been used for the logo of the last bug,
ShellShock: All you need to know about the Bash Bug vulnerability | Symantec Connect
I have also seen... (3 Replies)
Discussion started by: Kibou
3 Replies
8. UNIX for Advanced & Expert Users
Hello Gurus :)
I'm "currently" (for the last ~2weeks) writing a script to build ffmpeg with some features from scratch.
This said, there are quite a few features, libs, to be downloaded, compiled and installed, so figured, writing functions for some default tasks might help.
Specialy since... (3 Replies)
Discussion started by: sea
3 Replies
9. Shell Programming and Scripting
Hello! i try to understand the art of bash scripting but unfortunately, more i try and less i understand it.
Can someone tell me how i can learn its logic? i will give you an example why its making me crazy. Look at this basic script:
my for loops are working like this, but it took me more than... (10 Replies)
Discussion started by: sablista
10 Replies
10. Shell Programming and Scripting
I am sharing a code snippet.
for (( i=0; i<=$(( $count -1 )); i++ ))
do
first=${barr2}
search=${barr1}
echo $first
echo "loop begins"
for (( j=0; j<=5000; j++ ))
do
if } == $search ]]; then
echo $j
break;
fi
done
second=${harr2}
echo $second (2 Replies)
Discussion started by: ngabrani
2 Replies
IS_DIR(3) 1 IS_DIR(3)
is_dir - Tells whether the filename is a directory
SYNOPSIS
bool is_dir (string $filename)
DESCRIPTION
Tells whether the given filename is a directory.
PARAMETERS
o $filename
- Path to the file. If $filename is a relative filename, it will be checked relative to the current working directory. If $file-
name is a symbolic or hard link then the link will be resolved and checked. If you have enabled safe mode, or open_basedir further
restrictions may apply.
RETURN VALUES
Returns TRUE if the filename exists and is a directory, FALSE otherwise.
EXAMPLES
Example #1
is_dir(3) example
<?php
var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));
var_dump(is_dir('..')); //one dir up
?>
The above example will output:
bool(false)
bool(false)
bool(true)
ERRORS
/EXCEPTIONS
Upon failure, an E_WARNING is emitted.
NOTES
Note
The results of this function are cached. See clearstatcache(3) for more details.
Tip
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to "Supported Protocols and Wrappers" to determine
which wrappers support stat(3) family of functionality.
SEE ALSO
chdir(3), dir(3), opendir(3), is_file(3), is_link(3).
PHP Documentation Group IS_DIR(3)