Sponsored Content
Full Discussion: Bash expansion
Top Forums Shell Programming and Scripting Bash expansion Post 302991393 by Chubler_XL on Friday 10th of February 2017 03:02:26 AM
Old 02-10-2017
Additional: if $MY_PATH has the potential to contain whitespace it gets a little more tricky. After some mucking around I did find this solution in bash using arrays:

Code:
$ MY_PATH=/tmp/jc\ dole
$ mkdir -p "$MY_PATH"/{test,.local/share/{kscreen,ballo},.dbus}/{test{1,2},.direct{A,B,C},.Xauthority,.xsession1,.bash_history}
$ F1=( -path "$MY_PATH"/.local/share/kscreen -o -path "$MY_PATH"/.local/share/ballo -o -path "$MY_PATH"/.dbus )
$ set -f
$ F2=(! -name .direct*  ! -name .Xauthority  ! -name .xsession*  ! -name .bash_history)
$ OLDIFS=$IFS
$ IFS=
$ find "$MY_PATH"  -type d \( ${F1[*]} \)  -prune -o \( ${F2[*]} -print \)
/tmp/jc dole
/tmp/jc dole/.local
/tmp/jc dole/.local/share
/tmp/jc dole/test
/tmp/jc dole/test/test1
/tmp/jc dole/test/test2
$ IFS=$OLDIFS
$ set +f

Note: set -f is required to stop glob expansion of wildcards within the F2 array as we want to pass the wildcards onto find

Last edited by Chubler_XL; 02-10-2017 at 04:48 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

bash - delay expansion of variable

Hello - I have a bash script which does some logging, and I'd like to include the line number of the echo statement that pipes into $LOGGER: MYPID=$$ MYNAME=`basename $0` LOGGER="/usr/bin/logger -t $MYNAME($LINENO) -p daemon.error" ... echo 'this is an entry into the log file' | $LOGGER ... (3 Replies)
Discussion started by: scandora
3 Replies

2. Shell Programming and Scripting

Brace expansion problem in Bash

I have a script that takes an option for server pools to run the script against. The option is given as a comma separated list (ie, -p 201,204,301). I'm using eval and brace expansion to get those pool numbers into an array. It works fine unless only 1 pool number is given. Here's the code: ... (5 Replies)
Discussion started by: mglenney
5 Replies

3. Shell Programming and Scripting

Bash variable delayed expansion?

i write a batch file , here is the content. dirname='date +%Y-%m-%d' mkdir dirname but it doen's work, it just create a folder named date and +%Y-%m-%d. i have tried run the command seperately in the bash prompt. after the first sentence executed , i use $dirname to watch the value of... (4 Replies)
Discussion started by: premotheus
4 Replies

4. Shell Programming and Scripting

Does SH support indirect expansion like BASH?

Hello, is there a kind soul who can answer me, does the SH support double substitution known as indirect expansion similar to BASH? The syntax for bash is ${!var}. For instance in bash I can write something like this: VAR="value" REF_VAR="VAR" echo ${!REF_VAR} and get the "value"... (1 Reply)
Discussion started by: dimentiy
1 Replies

5. Shell Programming and Scripting

Bash shell expansion help

This is what I have in my directory. $ ls test1.txt test2.txt test3.txt test4.txt test5.txt test_script.sh This is what my shellscript looks like. #!/bin/bash for filename in /shell_expansion/*.txt; do for ((i=0; i<=3; i++)); do echo "$filename" ... (5 Replies)
Discussion started by: cokedude
5 Replies

6. Shell Programming and Scripting

Bash variable expansion

Hello. The file /etc/fstab contains UUID=957c3295-9944-1593-82e2-2b90dede4312 / ext4 noatime,discard,acl,user_xattr 1 1 I fill a variable SOME_LINE=$( cat /etc/fstab | grep \/\..*ext4 | grep noatime,discard )echo $SOME_LINE... (3 Replies)
Discussion started by: jcdole
3 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

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. path="/var/talend/nat/cdc" Now to get only nat I could do following. path1="${path%/*}" path1="${path1##*/}" Here... (8 Replies)
Discussion started by: RavinderSingh13
8 Replies
DEBNEST_MAKE(1) 					User Contributed Perl Documentation					   DEBNEST_MAKE(1)

NAME
debnest_make - creates a nested debian source package tree SYNOPSIS
debnest_make <.dsc> [<suffix>] DESCRIPTION
Debnest is a program to create a nested debian source package tree from the specified debian source control file <.dsc>. The nested debian source package will be named as <its original source package>-debian by default and its upstream version will be <original debian source version> and its revision will be 1. If you want to change -debian, you can specify it to second argument. EXAMPLES
This creates debnest-debian-0.0.1/ and debnest-debian-0.0.1.orig/ ~$ debnest_make /tmp/debnest_0.0.1.dsc ~$ ls debnest-debian-0.0.1/ debnest-debian-0.0.1.orig/ ~$ cd debnest-debian-0.0.1 ~$ debuild ~$ ls .. debnest-debian-0.0.1/ debnest-debian_0.0.1-1_i386.changes debnest-debian_0.0.1-1.diff.gz debnest-debian_0.0.1.orig.tar.gz debnest-debian_0.0.1-1.dsc debnest_0.0.1-1_all.deb ~$ tar ztf ../debnest-debian_0.0.1.orig.tar.gz debnest-debian-0.0.1.orig/ debnest-debian-0.0.1.orig/debnest_0.0.1.tar.gz debnest-debian-0.0.1.orig/debnest_0.0.1.dsc This creates debnest-local-0.0.1/ and debnest-local-0.0.1.orig/ ~$ debnest_make /tmp/debnest_0.0.1.dsc -local ~$ ls debnest-local-0.0.1/ debnest-local-0.0.1.orig/ ENVIRONMENT
EMAIL, DEBEMAIL If either of these variables is set, it will be used as the maintainer/uploader's email address. If both are set, DEBEMAIL will take precedence. If neither is set, the current user's email address (or, if that fails, the email of the last original package uploader) will be used. DEBFULLNAME The maintainer/uploader's full name to be used. If unset, the name specified in the passwd file or, if there is none, the name of the last original package uploader. DEBNEST_RULES The rules file to be used. If unset, /usr/share/debneset/rules is used. If you want to use cdbs based rules, you would set it '/usr/share/debnest/rules-cdbs'. Because /usr/share/debnest/ is a default search path, you can specify just 'rules-cdbs'. EXTRA_BUILDDEP Extra build-dependency to be added in your new debian/control. Default is ", debnest" perl v5.8.8 2007-11-16 DEBNEST_MAKE(1)
All times are GMT -4. The time now is 09:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy