C shell - a question of a beginner


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting C shell - a question of a beginner
# 1  
Old 04-15-2015
C shell - a question of a beginner

Hi,
can someone explain how this aliases work:
Code:
alias m 'if ( \!:$ =~ *gz) set status = 1 &&  most  \!:$ || gzcat \!:1 | most  '

I mean, I know what it does, but I don't know how
- what is \!:$ and \!:1
- how do it used the && and ||
- what it does with status variable?

thanks

Last edited by Corona688; 04-15-2015 at 01:14 PM..
# 2  
Old 04-15-2015
Please use code tags instead of red font, [code]stuff[/code]

csh has a number of special things for use inside aliases:
  • !! is the whole command line
  • !* is all the arguments of the command
  • !:1 is the first argument of the command
  • !:2 is the second argument of the command
  • !$ is the last argument of the command

&& and || are short-circuit if-then statements.

Code:
true && echo "This will print"
false && echo "This will not"
true || echo "This will not print"
false || echo "But this will"

So, if the extension does not match gz, it will set status=1 then run most. Otherwise, it will run gunzip and pipe that into most.
# 3  
Old 04-16-2015
thanks Corona668

thanks Corona668


can you recommend on good reference to study C shell programing?
# 4  
Old 04-16-2015
Actualy, bash has those just as well:

from: man bash
Code:
Event Designators
       An  event  designator  is a reference to a command line entry in the history list.  Unless the reference is
       absolute, events are relative to the current position in the history list.

       !      Start a history substitution, except when followed by a blank, newline,  carriage  return,  =  or  (
              (when the extglob shell option is enabled using the shopt builtin).
       !n     Refer to command line n.
       !-n    Refer to the current command minus n.
       !!     Refer to the previous command.  This is a synonym for `!-1'.
       !string
              Refer  to  the  most recent command preceding the current position in the history list starting with
              string.
       !?string[?]
              Refer to the most recent command preceding the current  position  in  the  history  list  containing
              string.  The trailing ? may be omitted if string is followed immediately by a newline.
       ^string1^string2^
              Quick  substitution.   Repeat  the  previous command, replacing string1 with string2.  Equivalent to
              ``!!:s/string1/string2/'' (see Modifiers below).
       !#     The entire command line typed so far.

Just saying because of this thread: Csh Programming Considered Harmful

Just as consideration...
Hope this helps, have a nice day.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Beginner Bash Scripting Question

Hello, I am new to Linux and studying to become a Unix System Admin. I am taking a course in which I was practicing creating a bash script to ping a particular IP address. The script can be found below: #/bin/bash echo "Enter the IP address" read ip if then ping -c 1 $ip if ;... (3 Replies)
Discussion started by: shah9250
3 Replies

2. Shell Programming and Scripting

Beginner Question about 2 specific functions

My professor has given me a couple of functions that I am to use to accomplish the task of replacing spaces in file and/or directory names with hyphens. (i.e. A B/C D/E F and you want to rename that to A B/C D/E-F would be an example of changing the file and leaving the directories) These are... (1 Reply)
Discussion started by: Skittlybop
1 Replies

3. Shell Programming and Scripting

pls help kinda difficult question for a beginner

1. Create a directory script (project_dir.sh) · Write a script in your home directory to create a subdirectory called “PROJECT<99>” within your home directory on the Ubantu/Linux server. <99> is your project number (e.g. 01,02,03, ... 15). · The script must test whether... (1 Reply)
Discussion started by: bugenhagen_
1 Replies

4. Shell Programming and Scripting

Beginner Question

Hello, I am new to shell scripting. I have a question I would greatly appreciate any suggestions on. I am writing a ksh script that will launch bin files. The files are owned root and the application runs under root. The application administrators do not get root access. The script is intended... (1 Reply)
Discussion started by: inakajin
1 Replies

5. Shell Programming and Scripting

sed beginner question

Hello, I am processing data. In the first column there is the date ("2011 02 03 12 45") separated by space and follow I have the measurements.I have several days in one file. What I would like to do is: to read the data line by line and write the data of "today" in a new file and "yesterday" as... (13 Replies)
Discussion started by: jurgen
13 Replies

6. Shell Programming and Scripting

sed beginner question

hi and sorry for crossposting... I have data, the first column is the date ("2011 02 03 12 45") and follow I have the measurements . What I would like to do is: to read the data line by line and write the data of "today" in a new file and "yesterday" as well in another file, separated by... (2 Replies)
Discussion started by: jurgen
2 Replies

7. Shell Programming and Scripting

beginner's question

i write a shell program and i execute that after i made a bin directiry in my home directory(i didnt give any permissions) now i change to other directory.then i execute it bit it is saying " no such a file or directory" can any one help me please (2 Replies)
Discussion started by: wkbn86
2 Replies

8. Shell Programming and Scripting

Beginner Shell Programming Question

Hello all, I am currently try to learn the linux operating system as well as some bash programming. I have come across some online course work which has been very helpful, I have been working through some assignments and since I have no teacher to ask I have come to you experts. So the... (6 Replies)
Discussion started by: g2axiom
6 Replies

9. UNIX for Dummies Questions & Answers

beginner redirect question

How can I redirect all stdout and stderr messages from a command to /dev/null (or to a file if need be) except messages that start with the word 'foo'? Messages that start with 'foo' need to be displayed in real time (i.e., when they are sent to stdout/stderr by the command). Thanks. (5 Replies)
Discussion started by: darwin_886
5 Replies

10. UNIX for Dummies Questions & Answers

A beginner for cygwin simple question

the current pwd is: c:\cygwin\home\hui which command can go to c:\documents and setting\hui\my documents\hui\reply.txt (1 Reply)
Discussion started by: zhshqzyc
1 Replies
Login or Register to Ask a Question