Expansion not working properly


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Expansion not working properly
# 1  
Old 09-29-2015
Expansion not working properly

I'm using an Ubuntu machine and expansion is not working properly. What would cause this? Do I need to check for any particular bash packages?

Code:
$ ipcs -m | grep $USER | awk '{printf "%s ",$2}'


$ ipcs -m | grep UNF | awk '{printf "%s ",$2}'
294912 1048577 425986 688131 786436 1245189 917510 1015815 1146888 1277961 1409034 1441803 1540108 2359309 2424846 2555920

A ridiculously basic example with expansion not working.
Code:
ps -ef | grep $USER

# 2  
Old 09-29-2015
USER is generally exported on login but is not read-only -- something could conceivably have changed or unset it before you get to that point. That would be far more likely than expansion being "broken".

Show what this prints:

printf "[%s]\n" $USER
# 3  
Old 09-29-2015
What's the result of env | grep USER (Just the word USER)
What's the result of echo "[$USER]"
# 4  
Old 09-29-2015
You mean shell's "parameter and variable expansion"? Are you sure USER is defined? What's the result of echo $USER?

You know you don't need grep if awk is around?
# 5  
Old 09-29-2015
Quote:
Originally Posted by Corona688
USER is generally exported on login but is not read-only -- something could conceivably have changed or unset it before you get to that point. That would be far more likely than expansion being "broken".

Show what this prints:

printf "[%s]\n" $USER
Code:
$ printf "[%s]\n" $USER 
[UNF\1122]

Code:
$ env | grep USER
USER=UNF\1122

Code:
$ echo "[$USER]"
[UNF\1122]

I'm guessing its getting confused by the \. When I did this it matched every character in my username.

Code:
$ ps -ef | grep "[$USER]"

Code:
$ echo $USER
UNF\1122

# 6  
Old 09-29-2015
grep did not match any "UNF\1122" in the ps output because none of the ps output contained "UNF\1122".

I am not sure what \1122 is supposed to be, but it's some unicode character you may not have noticed because it's probably unprintable in your terminal.

Make sure that it's not actually in your user name:

Code:
awk -v U="$UID" -F":" '$3 == U { print $1 }' /etc/passwd | hexdump -C

This isn't Cygwin, is it?
# 7  
Old 09-29-2015
You said you were in an Ubuntu box. The env USER should be set to just the name of the account you're logged in. Somewhat, it has been set to that "UNF\1122", unless that that's the name of the account.

Check what's the user name:
Code:
grep UNF /etc/passwd | od -bc

Log out and log in again and check once more for env
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Join not working properly

I want to join two files , with file 1 col 3 and file 2 col 1 as key. The join command is erratic for some reason. File 2 is a master file having all the names, and file 1 has some values. I want to add the names from fil2 in file 1. If I use the original master file, some output is missing. ... (16 Replies)
Discussion started by: ritakadm
16 Replies

2. Shell Programming and Scripting

Why is sort not working properly here ?

Platform: RHEL 5.4 In the below text file I have strings like following. $ cat /tmp/mytextfile.txt DISK1 DISK10 DISK101 DISK102 DISK103 DISK104 DISK105 DISK106 DISK107 DISK108 DISK109 DISK110 DISK111 DISK112 DISK113 DISK114 (8 Replies)
Discussion started by: kraljic
8 Replies

3. 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

4. Shell Programming and Scripting

uuencode is not working properly

Hello Everyone, I'm very new to the shell script. I'm trying to send multiple attachments in unix using uuencode command. Total I have 3 text files which should be send in mail. but I'm getting 6 files and 3 files with subject as file name. And the content is ` end I'm working... (6 Replies)
Discussion started by: narikivar
6 Replies

5. Red Hat

sudo is not working properly

This is the first time for using sudo for me. # visudo ## Allows people in group admin to run all commands %admin ALL=(ALL) ALL # groupadd admin # useradd temp # usermod -a -G admin temp # id temp uid=506(temp) gid=506(temp) groups=506(temp),507(admin) # #sudo... (5 Replies)
Discussion started by: getrue
5 Replies

6. UNIX for Advanced & Expert Users

Sendmail is not working properly

Hi All, Can any one help me to solve the issue. The Issue is, i have started the sendmail service on my RHEL 4 update 6 box, I am able to send the mail from my box to almost all of the Email Id's except few. Exampe, test mail. . Output is :the message is sent. now if I send the... (2 Replies)
Discussion started by: akhtar.bhat
2 Replies

7. Shell Programming and Scripting

\n not working properly

Hi all, I'm trying to generate a series of txt files starting from a plain csv file part of my code: #!/bin/ksh INSTALLDIR=/Users/ME/Installdir CSV=CSV.csv TMP=/tmp/$(basename $0).txt tr -s "\r" "\n" < /$INSTALLDIR/$CSV > $TMP function Makefiles { printf '%24s:%30s\n' "sometext"... (1 Reply)
Discussion started by: Jive Spector
1 Replies

8. UNIX for Dummies Questions & Answers

Telnet is not working properly

telnet at my system is behaving stange. Some times I am able to telnet to other machines but sometimes it stop doing that. Then i have to reboot the machine and most of the time (not 100%) it works. SImilar is the case with SSH. Sometime it works , some time it don't. i am new to Unix and I do not... (1 Reply)
Discussion started by: deepak_pathania
1 Replies

9. Shell Programming and Scripting

Basic variable expansion not working...

#!/usr/bin/bash if then echo "Not valid arguments entered. Just username should be entered." else USER_NAME=$1 FILE_NAME=$USER_NAME.info UNN=STUDIN\\\\$1 echo $UNN last STUDIN\\\\$1 last UNN If I type `last STUDIN\\eip060` it works but if I try to expand it with variable it is... (5 Replies)
Discussion started by: Zammy_bg
5 Replies

10. Programming

y is this not working properly?

#include <stdio.h> #include <sys/types.h> #include <string.h> #include <sys/stat.h> #include <unistd.h> struct stat s; main() { char c; if (fork()==0) { system("clear"); do { printf("myAI\\>§ "); scanf("%s",c); if(stat(c,&s)>-1) {... (3 Replies)
Discussion started by: C|[anti-trust]
3 Replies
Login or Register to Ask a Question