Sponsored Content
Top Forums Shell Programming and Scripting One more expression syntax error Post 302299377 by morava on Friday 20th of March 2009 01:12:59 AM
Old 03-20-2009
Hi again, still not working. I got the spaces figured out with my teacher, but i cannot fix the logic. What I have right now is three sections: read, write, execute. If I say: "If the file is not readable, change it to readable and echo the appropriate message, otherwise change it unreadable" If I leave it with +r | -r | +r, it works, except it only echoes The file has been changed to readable (writeable, executable) If I change the permissions to -r | -r | +r or anything similar, it returns the expression syntax. In the read section I show the adjusted one (with expr. syntax), in other two sections what I had originally, it works except returns the first echo only

#!/bin/csh
# This script will accept a file name as one argument and the word
# read, write or execute as the second argument
# On top of that, it will switch the permissions to the opposite one

if ($2 == read) then
if (+r $1) then
chmod -r $1
echo Permission changed to readable
else
chmod +r $1
echo Permission changed to not readable
endif
else if ($2 == write) then
if (-w $1) then
chmod +w $1
echo Permission changed to writeable
else
chmod -w $1
echo Permission changed to not writeable
endif
else
if (-x $1) then
chmod +x $1
echo Permission changed to executable
else
chmod -x $1
echo Permission changed to non executable
endif
endif
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Expression syntax

Hello, I am getting Expression syntax message and I cannot figure out what's wrong. This program will print all the odd numbers between 0 and the one the user enters, in cshell. I think my logic is either good or almost there, but i dont see the errors. I think it could be the spaces between... (1 Reply)
Discussion started by: morava
1 Replies

2. Shell Programming and Scripting

syntax error for if statment test expression

Hi what's the correct way of writing if 1)if "$time_diff" -gt 5 then echo "killing hung process \n" fi 2)if test $time_diff -gt 5 then echo "killing hung process \n" fi where -time_diff=$(($Sam - $current_min)) and current_min=`date +%M` infact both are giving Syntax... (1 Reply)
Discussion started by: Anteus
1 Replies

3. UNIX for Dummies Questions & Answers

Syntax Help | unix | grep | regular expression | repetition

Hello, This is my first post so, Hello World! Anyways, I'm learning how to use unix and its quickly become apparent that a strong foundation in regular expressions will make things easier. I'm not sure if my syntax is messing things up or my logic is messing things up. ps -e | grep... (4 Replies)
Discussion started by: MykC
4 Replies

4. Shell Programming and Scripting

if expression syntax error

#! /bin/csh set umr=UMR foreach i ( `ls`) set file_nm=$i set bh_nm=`echo $file_nm | cut -d"_" -f2` if($bh_nm !=$umr) then { set bh_ext=`echo $file_nm | cut -d"_" -f4` set bh_num_nm="$bh_nm $bh_ext a .txt" mv $file_nm $bh_num_nm } ... (1 Reply)
Discussion started by: jdsignature88
1 Replies

5. UNIX for Dummies Questions & Answers

If Then ElseIf Script - Confusion Around Expression's Syntax

Hello, I am relatively new to UNIX scripting and am learning a lot. I have already tried several searches on this website and have tried various syntax options suggested to no avail. I am obviously not writing the script correctly. I really do appreciate any and all the help. Below is an... (8 Replies)
Discussion started by: dqrgk0
8 Replies

6. Shell Programming and Scripting

if: expression syntax error in gawk

I'm pretty new to shell scripting, but I am catching on quick. I did see one of the stickied threads about the csh, and I think this is relevant, but I don't understand enough to make a decision based on it. So as you'll see below, I use the |csh pipe, and if that is not correct, I'm certainly... (2 Replies)
Discussion started by: macman104
2 Replies

7. Shell Programming and Scripting

If expression syntax

Hello there! I am having some difficulties in the syntax of a script. I am a newbie :) What i want is a script that copies 1 or more files to a destination folder with a question if file allready exists if ($#argv > 2) then if (-d $argv($#argv)) then foreach x ($*) cp -i $x to... (4 Replies)
Discussion started by: ennui92
4 Replies

8. Shell Programming and Scripting

Help with awk script (syntax error in regular expression)

I've found this script which seems very promising to solve my issue: To search and replace many different database passwords in many different (.php, .pl, .cgi, etc.) files across my filesystem. The passwords may or may not be contained within quotes, single quotes, etc. #!/bin/bash... (4 Replies)
Discussion started by: spacegoose
4 Replies

9. Shell Programming and Scripting

TCL: syntax error in expression with "*"

I'm using tcl scripts in ns2 ( network simulator) through cygwin. It works fine , however, I downloaded an example when i run it , I got the following syntax error: syntax error in expression with " *2" : unexpected operator * while executing : "expr $bw *2" invoked from within: "$ns... (1 Reply)
Discussion started by: ENG_MOHD
1 Replies

10. Shell Programming and Scripting

Observing error :syntax error in expression

#!/bin/bash a1="04:29:39 - System health check failed" i=$1 echo "a $((a$i))" The script above gives the following error $113> sh tryt.sh 1 tryt.sh: line 6: 04:29:39 - System health check failed: syntax error in expression (error token is ":29:39 - System health check failed") It... (1 Reply)
Discussion started by: ashima jain
1 Replies
chmod(1)						      General Commands Manual							  chmod(1)

NAME
chmod - change file mode access permissions SYNOPSIS
symbolic_mode_list file ... Obsolescent form numeric_mode file ... DESCRIPTION
The command changes the permissions of one or more files according to the value of symbolic_mode_list or numeric_mode. You can display the current permissions for a file with the command (see ls(1)). Only the owner of a file, or a user with appropriate privileges, can change its mode. Only a user having appropriate privileges can set (or retain, if previously set) the sticky bit of a regular file. If the sticky bit is set on a directory, files inside the directory may be renamed or removed only by the owner of the file, the owner of the directory, or the superuser (even if the modes of the directory would otherwise allow such an operation). In order to set the set-group-ID bit, the group of the file must correspond to your current group ID. If is used on a symbolic link, the mode of the file referred to by the link is changed. Options The command recognizes the following options: Preserve any optional access control list (ACL) entries associated with the file (HFS file systems only). By default, in conformance with the IEEE Standard POSIX 1003.1-1988, optional HFS ACL entries are deleted. For JFS ACLs, this option has no effect, because optional JFS ACL entries are always preserved. For information about access control lists, see acl(5) and aclv(5). Recursively change the file mode bits. For each file operand that names a directory, alters the file mode bits of the named directory and all files and subdirecto- ries in the file hierarchy below it. Operands The command recognizes the following operands: file Targe file for which the permissions are changes. numeric-mode Numeric value used to determine permission on a specified file. See the section for more information. symbolic-mode-list List of operations used to determine permissions on a specified file. See the section for more information. Symbolic Mode List A symbolic_mode_list is a comma-separated list of operations in the following form. Whitespace is not permitted. [who]op[permission The variable fields can have the following values: who One or more of the following letters: Modify permissions for user (owner). Modify permissions for group. Modify permissions for others. Modify permissions for all users is equivalent to op Required; one of the following symbols: Add permission to the existing file mode bits of who. Delete permission from the existing file mode bits of who. Replace the existing mode bits of who with permission. permission One or more of the following letters: Add or delete the read permission for who. Add or delete the write permission for who. Add or delete the execute file (search directory) permission for who. Add or delete the set-owner-ID-on-file-execution or set-group-ID-on-file-execution permission for who. Useful only if or is expressed or implied in who. Add or delete the sticky bit permission. Useful only if is expressed or implied in who. See chmod(2). Conditionally add or delete the execute/search permission as follows: o If file is a directory, add or delete the search permission to the existing file mode for who. (Same as o If file is not a directory, and the current file permissions include the execute permission displays an or an for at least one of user, group, or other, then add or delete the execute file permission for who. o If file is not a directory, and no execute permissions are set in the current file mode, then do not change any execute permission. Or one only of the following letters: Copy the current user permissions to who. Copy the current group permissions to who. Copy the current other permissions to who. The operations are performed in the order specified, and can override preceding operations specified in the same command line. If who is omitted, the and permissions are changed for all users if the changes are permitted by the current file mode creation mask (see umask(1)). The and permissions are changed as if was specified in who. Omitting permission is useful only when used with to delete all permissions. Numeric Mode (Obsolescent) Absolute permissions can be set by specifying a numeric_mode, an octal number constructed from the logical OR (sum) of the following mode bits: Miscellaneous mode bits: Permission mode bits: EXTERNAL INFLUENCES
Environment Variables determines the language in which messages are displayed. If is not specified or is null, it defaults to the value of If is not specified or is null, it defaults to (see lang(5)). If any internationalization variable contains an invalid setting, all internationalization variables default to See environ(5). International Code Set Support Single- and multibyte character code sets are supported. RETURN VALUE
Upon completion, returns one of the following values: Successful completion. An error condition occurred. EXAMPLES
Deny write permission to others: Make a file executable by everybody: Assign read and execute permission to everybody, and set the set-user-ID bit: Assign read and write permission to the file owner, and read permission to everybody else: or the obsolescent form: Traverse a directory subtree making all regular files readable by user and group only, and all executables and directories executable (searchable) by everyone: If the current value of is displays do not change write permission for group) and the current permissions for file are displayed by as then the command sets the permissions to displayed by as If the current value of is displays do not change write permission for group) and the current permissions for file are displayed by as then the command sets the permissions to displayed by as DEPENDENCIES
The option causes to fail on file systems that do not support ACLs. AUTHOR
was developed by AT&T and HP. SEE ALSO
chacl(1), ls(1), umask(1), chmod(2), acl(5), aclv(5). STANDARDS CONFORMANCE
chmod(1)
All times are GMT -4. The time now is 08:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy