tcsh - Command line arguments beginning with dash (-)
14,183
This script snippet worked for me:
set n = 1
echo $argv[$n]
if ( "$argv[$n]" == "-cleanup" ) then
echo "its cleanup"
endif
When I run tcsh ./test-cleanup.tcsh -cleanup
produces the following output:
-cleanup
its cleanup
The problematic piece of code is the following line. When -cleanup
was unquoted, it confuses the csh interpreter as a file check.
if ( $* != null ) then
Replace it with this line:
if ( "$*" != "" ) then
Related videos on Youtube
Author by
user1754045
Updated on June 04, 2022Comments
-
user1754045 over 1 year
I need to check the first command line argument to see if it's
-cleanup
. My code is:if ( $* != null ) then if ( "X$argv[$n]" == "X-cleanup" ) then echo "its cleanup"
I first check to make sure there is at least 1 argument.
n
is set to1
at the beginning of the program. When I try to run my script with-cleanup
as an argument I get this error:if: Malformed file inquiry.
I've tried solutions from the few forum posts I found online but I cannot figure out how to correctly handle the dash. It's a tcsh shell.