07-12-2005
expanding dotted paths to absolute ones in bash or sh
I have a little script to help me manage a gallery of image files. It makes symbolic links to every file in and below the current directory, placing them in a target directory which is passed to the script as a parameter. Unfortunately, the script pukes when I pass a parameter that contains dotted paths.
$ linkall /home/joe/foo
$ linkall ~/foo
work beautifully. The latter one works because the parameter is expanded before it is passed.
But,
$ linkall ../foo
pukes.
Does anyone know of a way to expand the passed parameter into an absolute path? I've tried everything I can think of. I'm having a hard time even thinking of the right query to Google for. Whenever that happens, I look for a forum.
It seems to me that I'm probably looking for some code that gets used in a lot of scripts; basically boilerplate that I've just never come across yet.
Other than by strictly using absolute paths, I can't think of any workarounds off the top of my head.
I can post the script if that would help. It's 68 lines.
Last edited by TanRanger; 07-12-2005 at 07:18 PM..
10 More Discussions You Might Find Interesting
1. Post Here to Contact Site Administrators and Moderators
Can you guys please enable the "dotted" icon option, so that the thread icon for a thread in which a user has posted in will appear with a dot in it?
Thanks,
Aaron (2 Replies)
Discussion started by: Spetnik
2 Replies
2. AIX
Hi People,
Please advise if there is a command to retrieve the list of functions (user-defined) available at any certain point?
Cheers (1 Reply)
Discussion started by: easwam
1 Replies
3. UNIX for Dummies Questions & Answers
Hi,
The following code finds the line containing fruits in test.txt and replaces instances of apple with banana.
ed -s test.txt <<< $'/fruits/s/apple/banana/g\nw'
What I want to do is put variables in the place of fruits, apple and banana.
I have tried replacing ' with " to get... (2 Replies)
Discussion started by: de_la_espada
2 Replies
4. UNIX for Dummies Questions & Answers
Can someone cofirm that I have got the paths correct here? :confused:
$PATH_TO_TMP_DIR='/tmp';
#$PATH_TO_TMP_DIR='home/tmp';
$PATH_TO_YOUR_IMG_DIR = '/temp_images';
#$PATH_TO_YOUR_IMG_DIR = 'home/public_html/Midwich/temp_images';
Thanks (1 Reply)
Discussion started by: stubie
1 Replies
5. Shell Programming and Scripting
Hi,
I need to write an bash script which works like it can copy files from remote machine through ssh to the server where script is running in zip format with the structure i want. I don't want to get absolute path in zip archive. Please let me know how it can be possible.
ssh... (4 Replies)
Discussion started by: mirfan
4 Replies
6. Solaris
Hi,
How do I extract data from TAR excluding absolute paths for Tar? (Solaris)
Thanks (3 Replies)
Discussion started by: zam
3 Replies
7. Shell Programming and Scripting
i have some script with some paths inside it. The idea is to some files which is on desktop copy and move to another location. Problem is that inside script is similar to this:
cp test1.zip /root/help/
because I allways have another zip files, does it possible to have some input which ask me... (18 Replies)
Discussion started by: tomislav91
18 Replies
8. Shell Programming and Scripting
I am able to list all the filenames under a directory & its sub-directories except blent.tar on Linux
find "/tmp/" -type f | grep -v blent.tar | rev | cut -d '/' -f1 | rev
Desired Output:
THIRDPARTYLICENSEREADME.txt
javaws
libjavaplugin_oji.so
libjavaplugin_oji.so... (3 Replies)
Discussion started by: mohtashims
3 Replies
9. UNIX for Beginners Questions & Answers
I pass an argument to bash as run. The first command in green executes as expected, however the second in blue fails as the $run does not expand. I tried to escape the variable with \ thinking the quotes were making the literal translation and also "${run}" but both did not work to expand the... (3 Replies)
Discussion started by: cmccabe
3 Replies
10. UNIX for Beginners Questions & Answers
Hi Guys,
I wrote a collection of bash functions years ago and now need to use them again but
I'm getting some error messages when eval tries to expand the variables names.
I recollect that I used the shopt command to set one of the options but I can't quite
remember the command that I... (8 Replies)
Discussion started by: ASGR
8 Replies
LEARN ABOUT CENTOS
test::script
Test::Script(3) User Contributed Perl Documentation Test::Script(3)
NAME
Test::Script - Basic cross-platform tests for scripts
DESCRIPTION
The intent of this module is to provide a series of basic tests for 80% of the testing you will need to do for scripts in the script (or
bin as is also commonly used) paths of your Perl distribution.
Further, it aims to provide this functionality with perfect platform-compatibility, and in a way that is as unobtrusive as possible.
That is, if the program works on a platform, then Test::Script should always work on that platform as well. Anything less than 100% is
considered unacceptable.
In doing so, it is hoped that Test::Script can become a module that you can safely make a dependency of all your modules, without risking
that your module won't on some platform because of the dependency.
Where a clash exists between wanting more functionality and maintaining platform safety, this module will err on the side of platform
safety.
FUNCTIONS
script_compiles
script_compiles( 'script/foo.pl', 'Main script compiles' );
The "script_compiles" test calls the script with "perl -c script.pl", and checks that it returns without error.
The path it should be passed is a relative unix-format script name. This will be localised when running "perl -c" and if the test fails the
local name used will be shown in the diagnostic output.
Note also that the test will be run with the same perl interpreter that is running the test script (and not with the default system perl).
This will also be shown in the diagnostic output on failure.
script_runs
script_runs( 'script/foo.pl', 'Main script runs' );
The "script_runs" test executes the script with "perl script.pl" and checks that it returns success.
The path it should be passed is a relative unix-format script name. This will be localised when running "perl -c" and if the test fails the
local name used will be shown in the diagnostic output.
The test will be run with the same perl interpreter that is running the test script (and not with the default system perl). This will also
be shown in the diagnostic output on failure.
SUPPORT
All bugs should be filed via the bug tracker at
<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Script>
For other issues, or commercial enhancement and support, contact the author.
AUTHOR
Adam Kennedy <adamk@cpan.org>
SEE ALSO
prove, <http://ali.as/>
COPYRIGHT
Copyright 2006 - 2009 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
perl v5.16.3 2009-11-24 Test::Script(3)