Sponsored Content
Top Forums Shell Programming and Scripting Use parameter expansion over a parameter expansion in bash. Post 303043406 by RavinderSingh13 on Tuesday 28th of January 2020 01:31:44 AM
Old 01-28-2020
Use parameter expansion over a parameter expansion in bash.

Hello All,

Could you please do help me here as I would like to perform parameter expansion in shell over a parameter expansion.

Let's say I have following variable.
Code:
path="/var/talend/nat/cdc"

Now to get only nat I could do following.
Code:
path1="${path%/*}"
path1="${path1##*/}"

Here in this approach I am creating a temporary variable path1 and again performing parameter expansion, how about if I want to perform this in single time without having temporary variable? I have tried it like:

Code:
echo "${((${path%/*}))##*/}"

Which is giving me an error. Any help, guidance is appreciated.

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

removing html tags via parameter expansion

Hi all- I have a variable that contains a web page: echo $STUFF <html> <head> <title>my page</title></head> <body> blah blah etc.. Can I use the shell's parameter expansion abilities to remove just the tags? I thought that FIXHTML=${STUFF//<*>/} might do it, but it didn't seem to... (2 Replies)
Discussion started by: rev66
2 Replies

2. Shell Programming and Scripting

Need to print the expansion of the found string (the expansion is beween two delimiters '-' , '||'

Hi , could anyone help me out with this problem. sample.txt has this content : u001- this is used for project1 || u002- this is used for p2|| not to be printed u003- this is used for project3 || u004- this is used for p4 || u005- this is used for project5 || u006- this is used for p6... (9 Replies)
Discussion started by: Balaji PK
9 Replies

3. Shell Programming and Scripting

Need help with parameter expansion

Say you have this numeric variable that can be set by the user but you never want it to leave a certain range when it gets printed. How could you use parameter expansion such that it will never expand outside of that boundary? Thanks ---------- Post updated at 11:09 PM ---------- Previous update... (3 Replies)
Discussion started by: stevenswj
3 Replies

4. Shell Programming and Scripting

Bash parameter expansion from a config file

Hi - I am trying to do a simple config file with known variable names in it, e.g.: contents of config file a.conf: -a -b $work -c $host simplified contents of bash script file: work='trunk' host='alaska' opts=$(tr '\n' ' ' < a.conf) opts="$opts $*" mycommand $opts arg1 arg2 The... (3 Replies)
Discussion started by: mrengert
3 Replies

5. Shell Programming and Scripting

Parameter expansion not working for all strings...

I'm trying to write a script that parses my music collection and hard link some filenames that my media player doesn't like to other names. To do this I need to extract the name and remove alla non ASCII characters from that and do a cp -l with the result. Problem is this: 22:16:58 $... (8 Replies)
Discussion started by: refuser
8 Replies

6. UNIX for Dummies Questions & Answers

Parameter Expansion with regular expression

Hello experts, I am exploring parameter expansion, and trying to cut the fields in a URL. Following is the requirement: I have // abc.nnt /dir1/dir2/dir3/dir4/somefile.java What i need to get is the path after dir3, and dir3 will be passed. output that i need is... (1 Reply)
Discussion started by: gjarms
1 Replies

7. Shell Programming and Scripting

Bash Parameter Expansion

I have made the following examples that print various parameter expansions text: iv-hhz-sac/hpac/hhz.d/iv.hpac..hhz.d.2016.250.070018.sac (text%.*): iv-hhz-sac/hpac/hhz.d/iv.hpac..hhz.d.2016.250.070018 (text%%.*): iv-hhz-sac/hpac/hhz (text#*.): d/iv.hpac..hhz.d.2016.250.070018.sac... (2 Replies)
Discussion started by: kristinu
2 Replies

8. Shell Programming and Scripting

Bash Parameter Expansion

#!/bin/bash SNMPW='/usr/bin/snmpwalk' while read h i do loc=$($SNMPW -v3 -u 'Myusername' -l authPriv -a SHA -A 'Password1' -x AES -X 'Password2' $i sysLocation.0 2>/dev/null) loc=${loc:-" is not snmpable."} loc=${loc##*: } loc=${loc//,/} echo "$i,$h,$loc" done < $1 My question is ... ... (1 Reply)
Discussion started by: sumguy
1 Replies

9. Shell Programming and Scripting

Bash : More parameter expansion and IFS

I am trying to become more fluent with the interworking of bash and minimize the number of external calls. Sample Data. This will be the response of the snmp query. SNMPv2-MIB::sysName.0 = STRING: SomeHostName SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.1745... (5 Replies)
Discussion started by: sumguy
5 Replies

10. Shell Programming and Scripting

Bash : Parameter expansion ${var:-file*}

Example data $ ls *somehost* 10.10.10.10_somehost1.xyz.com.log 11.11.11.11_somehost2.xyz.com.log #!/bin/bash #FILES="*.log" FILES=${FILES:-*.log} for x in $FILES do ip="${x%%_*}" # isolate IP address x="${x##*_}" # isolate hostname hnam="${x%.*}" # Remove the ".log"... (2 Replies)
Discussion started by: popeye
2 Replies
symlink(2)							System Calls Manual							symlink(2)

NAME
symlink - Makes a symbolic link to a file SYNOPSIS
#include <unistd.h> int symlink ( const char *path1, const char *path2 ); STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: symlink(): XSH5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. PARAMETERS
Specifies the contents of the symbolic link to create. Names the symbolic link to be created. DESCRIPTION
The symlink() function creates a symbolic link with the name specified by the path2 parameter which refers to the file named by the path1 parameter. Like a hard link (described in the link() function), a symbolic link allows a file to have multiple names. The presence of a hard link guarantees the existence of a file, even after the original name has been removed. A symbolic link provides no such assurance; in fact, the file named by the path1 parameter need not exist when the link is created. Unlike hard links, a symbolic link can cross file system boundaries. When a component of a pathname refers to a symbolic link rather than a directory, the pathname contained in the symbolic link is resolved. If the pathname in the symbolic link starts with a / (slash), the symbolic link pathname is resolved relative to the process root direc- tory. If the pathname in the symbolic link does not start with a / (slash), the symbolic link pathname is resolved relative to the direc- tory that contains the symbolic link. If the symbolic link is the last component of the original pathname, remaining components of the original pathname are appended to the con- tents of the link and pathname resolution continues. The symbolic link pathname may or may not be traversed, depending on which function is being performed. Most functions traverse the link. The functions which refer only to the symbolic link itself, rather than to the object to which the link refers, are: An error is returned if a symbolic link is named by the path2 parameter. If the file specified is a symbolic link, the status of the link itself is returned. An error is returned if a symbolic link is named as the path parameter. This call applies only to symbolic links. A symbolic link can be removed by invoking the remove() function. If the file to be renamed is a symbolic link, the symbolic link is renamed. If the new name refers to an existing symbolic link, the symbolic link is destroyed. An error is returned if a symbolic link is named as the path parame- ter. An error is returned if the symbolic link named by the path2 parameter already exists. A symbolic link can be created that refers to another symbolic link; that is, the path1 parameter can refer to a symbolic link. A symbolic link can be removed by invoking unlink(). Search access to the symbolic link is required to traverse the pathname contained therein. Normal permission checks are made on each com- ponent of the symbolic link pathname during its resolution. A Context Dependent Symbolic Link (CDSL) is a symbolic link that has a variable in the path name. The variable is resolved differently for each member system in a cluster. If the system is not a member of a cluster, the variable is resolved as if it were member0 of a cluster. See hier(5) for more information about CDSLs and the cdslinvchk(8) refernce page for information about checking the CDSL file inventory RETURN VALUES
Upon successful completion, the symlink() function returns a value of 0 (zero). If the symlink() function fails, a value of -1 is returned and errno is set to indicate the error. ERRORS
If the symlink() function fails, errno may be set to one of the following values: The requested operation requires writing in a directory with a mode that denies write permission, or search permission is denied on a component of path2. The directory in which the entry for the symbolic link is being placed cannot be extended because the user's quota of disk blocks on the file system containing the directory has been exhausted. The path specified by the path2 parameter already exists. Too many symbolic links are found in translating path2. The length of the path1 parameter or path2 parameter exceeds PATH_MAX, or a pathname component of path2 is longer than NAME_MAX while {_POSIX_NO_TRUNC} is in effect. The path2 parameter points to a null pathname, or a component of path2 does not exist. The directory in which the entry for the symbolic link is being placed cannot be extended because there is no space left on the file system containing the directory. The new symbolic link cannot be created because there is no space left on the file system which would contain the link. There are no free inodes on the file system on which the file is being created. The operation is not applicable for this file sys- tem type. A component of path2 is not a directory. The requested operation requires writing in a directory on a read-only file system. [Tru64 UNIX] For NFS file access, if the symlink() function fails, errno may also be set to one of the following values: Indicates either that the system file table is full, or that there are too many files currently open in the system. Indicates a stale NFS file handle. An opened file was deleted by the server or another client; a client cannot open a file because the server has unmounted or unexported the remote directory; or the directory that contains an opened file was either unmounted or unexported by the server. RELATED INFORMATION
Functions: link(2), readlink(2), unlink(2) Commands: ln(1), cdslinvchk(1) Files: hier(5) Standards: standards(5) delim off symlink(2)
All times are GMT -4. The time now is 11:40 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy