≡ Menu

BASH Shell Frequently Asked Questions

This document contains a set of frequently-asked questions concerning Bash, the GNU Bourne-Again Shell. Bash is a free and default command interpreter with advanced features for both interactive use and shell programming under Linux. Also don't forget TLDP bash guide / Advanced Bash-Scripting Guide.

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

Comments on this entry are closed.

  • Manojg March 23, 2008, 4:04 pm

    Hi,

    I am using bash shell. I have a list of selected directories and want to loop over these directories. The code is like this:

    =========================================
    #!/bin/bash
    dir1=/home/abc/xyz1
    dir2=/home/abc/xyz2
    dir3=/home/cft/dsf
    ————
    ————

    x=1
    dir=””
    while [ $x -le 8 ]; do
    echo $(“dir”$x)
    let x++
    done
    ===========================================

    In output it produces dir1, dir2, dir3 etc., not the full name directory as defined above. How should I do this?

    Thanks
    Manojg

  • Zhiyi April 16, 2008, 9:48 pm

    See my solution

    #!/bin/bash

    #one approach is to use array
    dir=(/home/abc/xyz1 /home/abc/xyz2 /home/cft/dsf)
    x=0
    while [ $x -lt ${#dir[@]} ];
    do
    echo ${dir[x]}
    ((x++))
    done

    # another one is just use 'for'
    echo ""
    dirs="/home/abc/xyz1 /home/abc/xyz2 /home/cft/dsf"
    for dir in $dirs
    do
    echo $dir
    done