BASH Shell Frequently Asked Questions

last updated in Categories FAQ, Howto, Shell scripting

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.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

2 comment

  1. 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

  2. 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

    Have a question? Post it on our forum!