[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1674
  • Last Modified:

arrays in ksh.

Okay,
This is where I have reached uptil yet .

All you need to know is that I made an array and that I need to access it's variables which i'm unable to .
Pls help.


#!/usr/bin/ksh
#CREATE AN ARRAY TO STORE OWNERS TO COMPARE
set -A owners `ls -lR "${1}" 2>/dev/null | sed 1d | awk '{print $3}' | sort | uniq`

#LOOP OVER THE ARRAY TO GET THE OWNERS ONE BY ONE TO COMPARE
i=0
while [ $i -lt ${#owners[*]} ]
do
        `ls -lsR "${1}" | awk '/$owners[$i]/ {disk_usage += $6} END {print $owners[$i], " : ", 1*disk_usage, " MB"}'`

        ((i=i+1))
done
0
Shweta_Singh
Asked:
Shweta_Singh
2 Solutions
 
TintinCommented:
Are you wanting to use an array because you feel it is the best way to acheive the results or because you have to?

The above script can all be simplified greatly and doesn't need to use arrays.
0
 
ahoffmannCommented:
you're mixing shell and awk scripting without using proper quotes, I guess you want to write:

        `ls -lsR "${1}" | awk '/'${owners[$i]}'/ {disk_usage += $6} END {print '${owners[$i]}', " : ", 1*disk_usage, " MB"}'`

BTW, hope you know what's the purpose and resulting behaviour of backticks
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now