Skip to main content

Shell Programming : Array using input file values

Shell Programming : Array using input file values

I have created a test script for understanding of "Array" using shell script.
It is like perl or any other language but need to understand the requirement of array and use of it.

I need to parse a list of file names which will be collected by ls command. Then it need to print it again in double loop with some other command in bulk.

Programming Logic:
1. parse all file names correctly in array
2. print array with each its elements for testing
3. create a loop for number of file names by using print of each element of array
4. create a second loop in first loop for file names
5. print all file names with additional command without executing
6. collect output of this script and run it for your purpose.

#!/bin/sh
###### take file names
file1=file1.txt
file2=file2.txt
file3=file3.txt
pscript1=perlScript.pl
##########################
# declear and convert into array
declare -a array1
declare -a array2
declare -a array3
array1=($(cat "$file1"))
array2=($(cat "$file2"))
array3=($(cat "$file3"))
# ###########################
# # check array elements
# echo '- - Testing Array Append - -'
# cnt=${#array1[@]}
# echo "Number of elements: $cnt"
# for (( i = 0 ; i < cnt ; i++ ))
# do
# echo "Element [$i]: ${array1[$i]}"
# done
cnt1=${#array1[@]}
cnt2=${#array2[@]}
cnt3=${#array3[@]}
    for (( i = 0 ; i < cnt3 ; i++ ))
        do
        for (( j = 0 ; j < cnt1 ; j++ ))
                    do
            k=$[3*$i]
#            echo $k
            echo "time perl $pscript1 ${array1[$j]} ${array3[$i]} ${array2[$k]} ${array2[$[$k+1]]} ${array2[$[$k+2]]} pdb ${array1[$j]}_${array3[$i]}_$i-$j &"
        done
    done

Comments

Popular posts from this blog

AMD Graphic Driver (Radeon 6400 series) Install on Linux CentOS-6.2 x86_64 bit

Add-on in Dell vostro 3350 laptop for AMD Catalyst™
driver Radeon HD 6400 series graphic card in CentOS 6.2 x86_64 Linux
Step1: Update the CentOS with following packages
# yum install kernel-devel kernel-headers gcc gcc-c++

Now download the driver from the amd site http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx

Step2: Now install AMD Graphic driver
#sh amd-driver-installer-12-4-x86.x86_64.run

Step3: check log file
#vim /usr/share/ati/fglrx-install.log

there will be an error like this

"ERROR: Module drm is in use by i915,drm_kms_helper"
.
.
"You must change your working directory to /lib/modules/fglrx
and then call ./make_install.sh in order to install the built module."

You can ignore these lines happily if they don’t contain any error message. You don’t really need to execute the command mentioned in those lines.

Step4: Blacklist radeon and radeonhd kernel modules

Add these lines to /etc/modprobe.d/blacklist.conf.

blacklist radeon
blacklist radeo…

Port forward of KVM Guest Virtual Machine through Host Machine using IPTABLE/FIREWALL in Linux System

Port forward of KVM Guest Virtual Machine through Host Machine using IPTABLE/FIREWALL in Linux System
There is a lot of method given in Internet for KVM guest machine port forwarding but I always look for the simple solution that can work in any Linux System.

I have issue during the port forward by IPTABLE/FIREWALL as it disable the Internet access within KVM guest machine.
If I look for Internet access within KVM guest machine then system disable port forwarding.

I have implement the simple solution in CentOS 6.5 x86_64 with can work in both situation as follows:

Step 1: Restart libvirtd service, so that it will modify your firewall rules as per KVM requirement.
# service libvirtd restart
Step 2: You need to add two rules in IPTABLE for NAT and FILTER
# iptables-save > iptable_save_default_libvirtd
# cp iptable_save_default_libvirtd iptable_modifed_libvirtd
# vim  iptable_modifed_libvirtd

Add line after *nat for SSH access

 -A PREROUTING -i eth0 -p tcp -m tcp --dport 222 -j DNA…

Yum command for download list of packages

Some time we need the download the software but not to install.
Also we have a list of software from repository in a text file but need to download by the yum.
To solve this kind of problem we need some trick of Linux,
download the package yum-downloadonly plugin
create a text file with rpm name.
now parse it to yum command
#yum install $(cat rpm-list.txt)

to download only the packages
#yum install <package name> --downloadonly --downloaddir=/home/user/

combine command
# yum install  $(cat rpm-list.txt) --downloadonly --downloaddir=/home/user

create a list from yum.log
#cp /var/log/yum.log /home/user/yum.log

select the package name only
# awk '{print $5}' /home/user/yum.log > rpm-list.txt

view the list
# cat rpm-list.txt

 to query about a package
# repoquery --list <package name>

to take information about package
#yum info <package name>

to show the list of packages
# yum list

to find a package for yum list
# yum list | grep <package name>