Sponsored Content
Full Discussion: please explain this
Top Forums Shell Programming and Scripting please explain this Post 302140536 by radoulov on Saturday 13th of October 2007 06:58:35 PM
Old 10-13-2007
Quote:
Originally Posted by dummy_needhelp
[...]
But , can anybody can explain me in detail about this line

zsh 4.3.4% <file1 while read;do printf "%s=%d\n" "$REPLY" "${#$(<file)//[^$REPLY]}";[...]
I suppose you mean this: "${#$(<file)//[^$REPLY]}" (the rest is quite trivial).

This is nested expansion that goes like this:

1. $(<file) is equivalent to $(cat file) but a bit faster.
2. ${$(<file)//[^$REPLY]} means: remove(substitute with null) any character different than the content of the variable REPLY.
3. ${#$(<file)//[^$REPLY]} (the # sign) means: give me the number of characters in the variable ${$(<file)//[^$REPLY]}.

HTH
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Please can any one explain this ${0##/}

I did not understand what is ${0##/} PGM=${0##/} TMP=/tmp/${PGM}.$$ Please explain me. (2 Replies)
Discussion started by: gadege
2 Replies

2. Shell Programming and Scripting

please explain the below

could u please convert the below statement to shell script ---------- logdir=/smp/dyn/logfiles/cpm/pgm/pgIm $logdir = $logdir ."/pgIm${toDate}*"; ---- could u please explain the below clearly grep -i adding $logdir | grep -iv equation | awk '{print \$NF}' | sort -u | sed -e... (1 Reply)
Discussion started by: mail2sant
1 Replies

3. AIX

can anyone explain this?

this is the mksys b script.... can anyone explain .. what # and 1 in if condition this is the first line of the script... it is not from middle of the script.... if then echo "Not enough parameters, need a client name for mksysb" Usage="Usage: $0 <client name>" ... (2 Replies)
Discussion started by: honeym210
2 Replies

4. UNIX for Dummies Questions & Answers

Please explain this

if then echo "Syntax: $0 <sid> <COLD/HOT> <DEST>" exit fi if --------------what does this mean??? echo "Syntax: $0 <sid> <COLD/HOT> <DEST>"---pls explain this as well (2 Replies)
Discussion started by: appsdba.nitin
2 Replies

5. Shell Programming and Scripting

can any one explain this example

hi all i have an example i want one help me to understand cause i tried to test it but almost fail and i don't know how can i solve this problem " the main idea to read from two files and replace something from one to another " but i don't understand why it fail all time $ cat main.txt... (4 Replies)
Discussion started by: maxim42
4 Replies

6. Homework & Coursework Questions

Could anyone help explain this?

1. The problem statement, all variables and given/known data: I have a retake assignment to complete for my computer networks and OS class. This isn't really my area, had I known last year I could have swapped it for a different module I would have done so. I'm determined to get through it... (6 Replies)
Discussion started by: Squall Moogle
6 Replies

7. Shell Programming and Scripting

Explain $# please

I'm trying to follow a script and I see it begins with this: if ; then if ; then print "blah $0 blah blah " exit fi fi What does $# mean? I found out that $1 refers to the shell environment and the last argument that was entered or passed in the previous command. I couldn't find $#... (2 Replies)
Discussion started by: MaindotC
2 Replies

8. Shell Programming and Scripting

anyone can explain this?

why the case 2 will happen ? , ' should stop the history substitution ,shouldn't it? case 1 # echo "123"|sed '/123/!d' 123 case 2 # echo "123 > 456 > 1 > "|sed '/123/!d' -bash: !d': event not found case 3 # echo "123 > 456 > 12 > "|sed '/123/'\!d 123 # bash --version (1 Reply)
Discussion started by: justlooks
1 Replies

9. Shell Programming and Scripting

Can someone explain this for me?

Can someone do me a favour and explain the following for me: ((r=$RANDOM%$n+1)) I know what $RANDOM does but what is % sign and what does it do with %$n+1? (2 Replies)
Discussion started by: bashily
2 Replies

10. UNIX for Dummies Questions & Answers

How I can explain this?

Hi friends! I'm learning UNIX and I have a small question. Working with Shell, i put the name of one executable (in c language) + one number and it says this: $ gcc misterioso_4.c $ ./misterioso_4 6 got: , I can not find an answer in the manual because I havent applied any variable.... (5 Replies)
Discussion started by: dakota
5 Replies
runat(1)							   User Commands							  runat(1)

NAME
runat - execute command in extended attribute name space SYNOPSIS
/usr/bin/runat file [command] DESCRIPTION
The runat utility is used to execute shell commands in a file's hidden attribute directory. Effectively, this utility changes the current working directory to be the hidden attribute directory associated with the file argument and then executes the specified command in the bourne shell (/bin/sh). If no command argument is provided, an interactive shell is spawned. The environment variable $SHELL defines the shell to be spawned. If this variable is undefined, the default shell, /bin/sh, is used. The file argument can be any file, including a directory, that can support extended attributes. It is not necessary that this file have any attributes, or be prepared in any way, before invoking the runat command. OPERANDS
The following operands are supported: file Any file, including a directory, that can support extended attributes. command The command to be executed in an attribute directory. ERRORS
A non-zero exit status will be returned if runat cannot access the file argument, or the file argument does not support extended attributes. USAGE
See fsattr(5) for a detailed description of extended file attributes. The process context created by the runat command has its current working directory set to the hidden directory containing the file's extended attributes. The parent of this directory (the ".." entry) always refers to the file provided on the command line. As such, it may not be a directory. Therefore, commands (such as pwd) that depend upon the parent entry being well-formed (that is, referring to a direc- tory) may fail. In the absence of the command argument, runat will spawn a new interactive shell with its current working directory set to be the provided file's hidden attribute directory. Notice that some shells (such as zsh and tcsh) are not well behaved when the directory parent is not a directory, as described above. These shells should not be used with runat. EXAMPLES
Example 1: Using runat to list extended attributes on a file example% runat file.1 ls -l example% runat file.1 ls Example 2: Creating extended attributes example% runat file.2 cp /tmp/attrdata attr.1 example% runat file.2 cat /tmp/attrdata > attr.1 Example 3: Copying an attribute from one file to another example% runat file.2 cat attr.1 | runat file.1 "cat > attr.1" Example 4: Using runat to spawn an interactive shell example% runat file.3 /bin/sh This spawns a new shell in the attribute directory for file.3. Notice that the shell will not be able to determine what your current direc- tory is. To leave the attribute directory, either exit the spawned shell or change directory (cd) using an absolute path. Recommended methods for performing basic attribute operations: display runat file ls [options] read runat file cat attribute create/modify runat file cp absolute-file-path attribute delete runat file rm attribute permission changes runat file chmod mode attribute runat file chgrp group attribute runat file chown owner attribute interactive shell runat file /bin/sh or set your $SHELL to /bin/sh and runat file The above list includes commands that are known to work with runat. While many other commands may work, there is no guarantee that any beyond this list will work. Any command that relies on being able to determine its current working directory is likely to fail. Examples of such commands follow: Example 5: Using man in an attribute directory example% runat file.1 man runat getcwd: Not a directory Example 6: Spawning a tcsh shell in an attribute directory example% runat file.3 /usr/bin/tcsh tcsh: Not a directory tcsh: Trying to start from "/home/user" A new tcsh shell has been spawned with the current working directory set to the user's home directory. Example 7: Spawning a zsh shell in an attribute directory example% runat file.3 /usr/bin/zsh example% While the command appears to have worked, zsh has actually just changed the current working directory to '/'. This can be seen by using /bin/pwd: example% /bin/pwd / ENVIRONMENT VARIABLES
SHELL Specifies the command shell to be invoked by runat. EXIT STATUS
The following exit values are returned: 125 The attribute directory of the file referenced by the file argument cannot be accessed. 126 The exec of the provided command argument failed. Otherwise, the exit status returned is the exit status of the shell invoked to execute the provided command. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |CSI |Enabled | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ SEE ALSO
open(2), attributes(5), fsattr(5) NOTES
It is not always obvious why a command fails in runat when it is unable to determine the current working directory. The errors resulting can be confusing and ambiguous (see the tcsh and zsh examples above). SunOS 5.10 22 Jun 2001 runat(1)
All times are GMT -4. The time now is 10:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy