Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Foreach loop through subdirectories in csh Post 302910948 by bakunin on Tuesday 29th of July 2014 08:12:51 AM
Old 07-29-2014
Quote:
Originally Posted by saleheen
The scripts name is GEN_POSCAR, so if I say like this-
Code:
cd /scratch/scratchdirs/saleheen/Scripts/My-scripts/GEN_POSCAR

won't it say it's not a directory? Or am I understanding something wrong here? :/
If the scripts (short) name is "GEN_POSCAR", then it is a file in directory "/scratch/scratchdirs/saleheen/Scripts/My-scripts". The full name would be "/scratch/scratchdirs/saleheen/Scripts/My-scripts/GEN_POSCAR",

but you were told by MadeInGermany to do this:
Code:
# cd /scratch/scratchdirs/saleheen/Scripts/My-scripts
# ./GEN_POSCAR

As i sense there is some confusion about the directory concept, here it is:

Every file is placed somewhere under the "root"-hierarchy, which is denominated by "/". "/" is the topmost directory on every UNIX- (and UNIX-like) system. Now, every directory can hold two (in fact there are more, i am simplifying here) types of entries: other directories and files. Each of these other directories can also hold directories and files, and so forth. Every directory si separated by the directory "above" by a slash "/".

Therefore, "/scratch/scratchdirs/saleheen/Scripts/My-scripts" means: in the root directory "/", there is a directory "scratch". Inside "/scratch" there is another directory "scratchdirs", hence: "/scratch/scratchdirs". Inside "/scratch/scratchdirs" there is the directory "salaheen" and inside this is "Scripts", asf.. Inside the bottom directory "/scratch/scratchdirs/saleheen/Scripts/My-scripts" is a file called "GEN_POSCAR", which holds your scripts source code.

Think of it like that: you open the topmost box. Inside you find several smaller boxes (subdirectories) and some loose sheets of paper (files). Opening one of the smaller boxes you find again smaller boxes (sub-subdirectories) and other loose sheets of paper. And so on, until a box contains only loose sheets and no other boxes.

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Foreach loop

What am I doing wrong with this foreach loop? foreach var ($argv) @sum = $sum + $var (4 Replies)
Discussion started by: haze21
4 Replies

2. Shell Programming and Scripting

foreach loop

Hi Guys, I have a loop which uses a wildcard i.e. foreach f (*) but when I execute the tcsh file in unix then it gives me an error ->>>>>>>foreach: words not parenthesized<<<<<<<<<<- Any help. (1 Reply)
Discussion started by: abch624
1 Replies

3. Shell Programming and Scripting

foreach loop

Hi everyone Does anyone know what is wrong with this script. i keep getting errors foreach filename (`cat testing1`) set string=$filename set depth=`echo "$string" echo $depth end the error is the following testing: line 1: syntax error near unexpected token `(' testing: line 1:... (3 Replies)
Discussion started by: ROOZ
3 Replies

4. Shell Programming and Scripting

foreach in csh

I have a foreach loop in a csh script and I noticed that it tries to find the files with the pattern *$searchpt* in the file name. I'm confused as I never specified checking for the files. foreach f ( *$searchpt* ) set fnew = `echo $f | awk -v searchpat=$searchpt \ ... (1 Reply)
Discussion started by: kristinu
1 Replies

5. Shell Programming and Scripting

How to loop(Iterate) through List with foreach(csh)

Hey all,, I know cshell is harmful:) but I am using this just "to know" - for educational purposes!... not for a long-term use. lets say i have a list.. set arr=(x y z e f) I wanna iterate the list with foreach ,, not with while.!! foreach i $arr echo $i end does not work (2 Replies)
Discussion started by: eawedat
2 Replies

6. UNIX for Dummies Questions & Answers

Foreach loop that skips the header line of a file (csh)

Hello all, I'm working on a foreach loop to compare a couple sets of data. However, each datafile includes a header row. I'm wondering if it is possible to tell the foreach loop to skip the first line of data. I've been using the basic code as follows: foreach line ("`file.csv`") set... (2 Replies)
Discussion started by: meteorologistks
2 Replies

7. UNIX for Dummies Questions & Answers

Using the Foreach loop, Needing help

I am trying to make a script for my Counter-Strike: Source servers. What i am wanting it to do is for it to restart each server, the only way i can think of doing this in through for each. Years what i have at the moment. server_start() { START=`ps x | grep SCREEN | grep $SRV | cut -d '?' -f... (5 Replies)
Discussion started by: grahamn95
5 Replies

8. Shell Programming and Scripting

foreach loop problem

Dear all, I wrote a script to download files and move files in directories according to their name. Now here is the problem: Both p101 and p360 data download successfully, but when I move them according to the year and month, only p101 data can be placed at the right location, p360,... (1 Reply)
Discussion started by: handsonzhao
1 Replies

9. UNIX for Dummies Questions & Answers

foreach loop in csh

Hi everyone I'm new to unix and encountered a small problem i couldnt find out a reason why it doesn't work..please help.. in my csh script when i tried to use the foreach loop like this: foreach x ( ls ) echo $x end when i tried to run it, it printed out 'ls' to the std out instead of... (3 Replies)
Discussion started by: ymc1g11
3 Replies

10. Shell Programming and Scripting

Foreach: Words not parenthesized. csh

Just started shell scripting for the first time today :D Can anyone tell me why I get the error "foreach: Words not parenthesized." for my following code? The program takes in a list of arguments. foreach card ($argv) echo Hello end (3 Replies)
Discussion started by: pkuebler
3 Replies
mkdirp(3GEN)					     String Pattern-Matching Library Functions					      mkdirp(3GEN)

NAME
mkdirp, rmdirp - create or remove directories in a path SYNOPSIS
cc [ flag ... ] file ... -lgen [ library ... ] #include <libgen.h> int mkdirp(const char *path, mode_t mode); int rmdirp(char *dir, char *dir1); DESCRIPTION
The mkdirp() function creates all the missing directories in path with mode. See chmod(2) for the values of mode. The rmdirp() function removes directories in path dir. This removal begins at the end of the path and moves backward toward the root as far as possible. If an error occurs, the remaining path is stored in dir1. RETURN VALUES
If path already exists or if a needed directory cannot be created, mkdirp() returns -1 and sets errno to one of the error values listed for mkdir(2). It returns zero if all the directories are created. The rmdirp() function returns 0 if it is able to remove every directory in the path. It returns -2 if a ``.'' or ``..'' is in the path and -3 if an attempt is made to remove the current directory. Otherwise it returns -1. EXAMPLES
Example 1 Example of creating scratch directories. The following example creates scratch directories. /* create scratch directories */ if(mkdirp("/tmp/sub1/sub2/sub3", 0755) == -1) { fprintf(stderr, "cannot create directory"); exit(1); } chdir("/tmp/sub1/sub2/sub3"); . . . /* cleanup */ chdir("/tmp"); rmdirp("sub1/sub2/sub3"); ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
chmod(2), mkdir(2), rmdir(2), malloc(3C), attributes(5) NOTES
The mkdirp() function uses malloc(3C) to allocate temporary space for the string. SunOS 5.11 14 Oct 2003 mkdirp(3GEN)
All times are GMT -4. The time now is 01:23 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy