$1”: ambiguous redirect


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
$1”: ambiguous redirect

New to the site, please let me know I'm not meeting the post guidelines.

I'm creating a bash script to generate a report with output from a grep command. The goal is to direct
the output to a different log file by using a 'logger file'. But I get this error during the run: $1”: ambiguous redirect.
I'd appreciate if someone can pointout what I'm missing. Thanks.

Code:
#!/bin/bash

#setup logging # applogger.sh
LOGFILE="/users/ronaldbland/desktop/ctestlog.log"

exec 2>>${LOGFILE}

# override this in sourcing script
LOGENTITY="default"

function log() {
	echo “$1”
	echo “[$LOGENTITY] $(date "+%Y.%m.%d %H:%M:%S") -> $1” >> $LOGFILE 2>&1
}

Code:
#!/bin/bash

#Script Name: Ctest.sh
#Main Script
# Author:Ron
# July 2019

#setup logging 

source /users/ronaldbland/desktop/applog.sh
LOGENTITY="ctest.sh"

# Serial Number
SN=`system_profiler SPHardwareDataType | grep "Serial Number"`
log "Serial Number (system): $SN"

# 2  
Code:
echo "[$LOGENTITY] $(date "+%Y.%m.%d %H:%M:%S") -> $1" >> $LOGFILE


Last edited by rdrtx1; 07-29-2019 at 05:50 PM.. Reason: just append to log file? STDERR is already set to redirect to logfile. STDOUT can be set to do the same.
This User Gave Thanks to rdrtx1 For This Post:
# 3  
That's because you are using the unicode U+201C / U+201D (Left / Right Double Quotation Mark) in lieu of the required ascii " (0x22, \o042). The "greater than" sign > thus is unquoted, and interpreted as a redirect operator by the shell.


Is it OK to presume you created the script with a word processor? Try a simple text editor instead.
This User Gave Thanks to RudiC For This Post:
# 4  
Thanks guys for the assist. I'v e banging my head on the wall.
Once I updated the "" format to ascii the script worked as needed. Also I noticed after this fix the script works with or without this ... 2>&1. But I will definitely keep this in mind as go onto new tasks.
# 5  
A further problem is the double use of $LOGFILE, as rdrtx1 already mentioned.
Code:
exec 2>>${LOGFILE}
echo "[$LOGENTITY] $(date "+%Y.%m.%d %H:%M:%S") -> $1" >> $LOGFILE

The second write opens an already opened file. It might get lost when the writing to the stream continues.
Correct is to write to the already opened stream.
Code:
exec 2>>${LOGFILE}
echo "[$LOGENTITY] $(date "+%Y.%m.%d %H:%M:%S") -> $1" 1>&2

These 2 Users Gave Thanks to MadeInGermany For This Post:
# 6  
I didn't think of that. Thanks for bringing that up. I will be writing several other variables to the stream.
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Ambiguous output redirect in xterm

Hi all, I've been working on a bash script to help with backups that I have to do at work. One of the lines in the script is supposed to launch an xterm, log into a specific server node and launch a tar backup to tape. This part works ok, but I've been trying to get stdout and stderr to... (2 Replies)
Discussion started by: Exitalterego
2 Replies

2. Linux

Ambiguous redirect error and syntax error when using on multiple files

Hi, I need help on following linux bash script. When I linux commands for loop or while loop on individual file it runs great. but now I want the script to run on N number of files so it gives me ambiguous redirect error on line 12 and syntax error on line 22 : (pls help ); #!/bin/bash #... (16 Replies)
Discussion started by: Madhusudan Das
16 Replies

3. Shell Programming and Scripting

Receiving 'ambiguous redirect' when trying to run command against multiple files

I came across the command string on https://www.unix.com/shell-programming-scripting/141885-awk-removing-data-before-after-pattern.html which was what I was looking for to be able to remove data before a certain pattern. However, outputting the result to a file seems to work on an individual basis... (4 Replies)
Discussion started by: HLee1981
4 Replies

4. Shell Programming and Scripting

ambiguous redirect error

This script has ambiguous redirect error. ... cd $HOME cd folder/work # search all subfolders in work directory find -mindepth 1 -maxdepth 1 -type d | while read directory do CUR_FOLDER="${directory#"./"}" cd $CUR_FOLDER chmod 644 * for ff in *; do if ; then ... (5 Replies)
Discussion started by: candyme
5 Replies

5. Shell Programming and Scripting

Ambiguous redirect

Hello there, I'm totally new in bash programming and ran into my first problem. My script should generate 3 textfiles where the content of the first and the third row are the same in each file. Only the second row is different. This is what I did in a very simplified explanation: ... (6 Replies)
Discussion started by: johndoe
6 Replies

6. UNIX for Dummies Questions & Answers

ambiguous redirect issue

I am trying to run the following script and I am getting an "ambiguous redirect" error. I have checked to make sure that the files are all where I have specified and are read/write as needed. Any ideas? Note: I have removed the actual path info for privacy sake. I have triple checked to make... (1 Reply)
Discussion started by: malantha
1 Replies

7. Shell Programming and Scripting

> to empty files, but ambiguous redirect

Hi Everyone, # ll total 0 -rw-r--r-- 1 root root 0 2010-05-13 11:29 a1.log -rw-r--r-- 1 root root 0 2010-05-13 11:29 a2.log -rw-r--r-- 1 root root 0 2010-05-13 11:29 a3.log # rm a.log above rm no problem, but when i use "> a.log", it says "-bash: a.log: ambiguous redirect". ... (3 Replies)
Discussion started by: jimmy_y
3 Replies

8. Shell Programming and Scripting

Ambiguous output redirect error

Hi everyone, While I was trying to do DATE=`date +"%Y%m%d_%H%M%S"` STARTLOG=$TUXSTDDIR/start_$DATE.log tmboot -y > $STARTLOG 2>&1 I got an error i.e. Ambiguous output redirect error. Here the first part is to boot the account so there is nothing wrong with that.... (6 Replies)
Discussion started by: pareshan
6 Replies

9. Shell Programming and Scripting

`ls -l`: Ambiguous

Hi, I'm trying to code a simple script (c-shell) on a Solaris box and I'm getting an "Ambiguous" error. These are the lines that cause the error: On c-shell: > set var = "" > @ var = `ls -l` `ls -l`: Ambiguous However if I change the second line to: > set var = `ls -l` This works... (2 Replies)
Discussion started by: Guillermo Lopez
2 Replies

10. UNIX for Dummies Questions & Answers

ambiguous redirect

i have following statement in the script echo -e "$str_XML_col_name:$str_field_type;" >> $i_DC_Key_$i_Tgt_DC_key_Schema here $i_DC_Key is DC key and $i_Tgt_DC_key are the variables............... when i ran the script i am getting error rec_merge.sh: $i_DC_Key_$i_Tgt_DC_key_Schema:... (1 Reply)
Discussion started by: mahabunta
1 Replies

Featured Tech Videos