I have this piece of code but I can not understand it in details and it is difficult to find in net. What is the function of the $, type, d and prefix here?
This script wants to get each file from their directory.
find /file directory/ -type d => list out all the directories (-type d) in /file directory/ grep file_name => finds the file_name from the list $(command) => pretend the result of the command to be a variable
But I don't think this script will "get each file from their directory". You will have to change -type d to -type f then.
I'm a bit confused with what it is trying to do, but here goes:-
for i in starts a loop between the following do & done (which you haven't got, so it will fail with a syntax error, unless this is just a snippit.
The $( through to ) set up the conditions for the loop by executing the contents.
It then gets a bit murky. I'm hoping that the "file directory" and "file name" are actually single items, not with spaces in them, else the meaning changes completely. If they are actually filedirectory and filename then the find command will search from filedirectory for any other directories because of the option -type d
You loop then executes for each occurrence.
The prefix= is an odd statement, but it is getting the 5th field of the directory name found. So if you had the following, you would get this output:-
The first field here is before the first / so that's why c is the only thing displayed on the second line. Because you are after the 5th field, you never get the d from the third line. If you do want that level and all subsequent, change the cut to be cut -f5- -d "/"
You then assign variable out to be the value determined above appended with .out and then never use it, just displaying the line determined above.
So, if you have the directory structure alluded to above, you would get the final output of this:-
What are you trying to achieve overall? There is probably a better (less processing/IO) and neater way to do it.
Thanks alot for your explanations. I am using Shell in Ubuntu 12.04.
I have already finished the task I needed to do with this script but as I have not written it, I could not understand it well but now, it's more clear.
I tried to run a command which simply generates SSH key with out prompting password.
After several trails , got the below command to run the script :
ssh-keygen -t rsa -N "" -f id_rsa
-N "" tells it to use an empty passphrase (the same as two of the enters in an interactive script)
-f... (0 Replies)
Hallo everyone,
I have this code:
DBNAME=DB_001 EXPORTPATH=./work EXPORTDATUM=${1} EXPORTSQL=$(dirname $0)/export_script.sql EXPORTSQL_TMP=${EXPORTPATH}/export.sql READYFILE=${EXPORTPATH}/ready EXPORTFILE_PREFIX=file.csv ## Prüfungen if ; then echo "not found" exit 1 fi
I am... (2 Replies)
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
Write a Bourne shell script which:
• Has one command line argument.
• If the command line argument is a... (5 Replies)
when i run a shell script i have to type
./my_prog
and the first line of my_prog has to have
#!/usr/bin/env bash
how do i change it to i only have to type my_prog to run it? (4 Replies)
Hi All,
I am having this problem and I can't find a decent answer anywere.
I'am trying to perform multiple command in a shell script.
For example
mkdir test
tar cvzf test.tar.gz test/
rmdir test
The problem I get is that if I run this file as a cronjob, with a big "test" folder; the... (4 Replies)
Hello, i am doing a project for school and i cannot figure out whats wrong with my 2 programs they dont seem to work at all.
the first program is called isprime and naturally it checks to see if hte number is prime or not
here is my code:
#!/usr/bin/bash
num=$1
echo you typed
if ... (2 Replies)
Can someone please explain the PS1="${x##*/}\$ " ??
how does that lop off leading components?
I don't understand it.. thanks
cd ( ) {
command cd "$@" Actually change directory
x=$(pwd) Get current directory name into variable x
PS1="${x##*/}\$ " ... (2 Replies)
I'm running a select statmenet from shell script, sometimes the result for the select is no rows selected. my question is, can I find a command in the shell asking about the result of the select and if the result is no data found print any msg I want instead of just writting no rows selected.... (3 Replies)
In Unix, How to find the file when i have the matter by subdirectory wise.
I have used the 'grep' command, but i can't get it, can anyone give the command of matter searched by subdirectorywise.
:confused: (5 Replies)