Sponsored Content
Top Forums Shell Programming and Scripting Different behavior between bash shell and bash script for cmd Post 303023567 by da1 on Wednesday 19th of September 2018 10:13:15 AM
Old 09-19-2018
Different behavior between bash shell and bash script for cmd

So I'm trying to pass certain json elements as env vars and use them later on in a script.


Sample json:
Code:
JSON='{  
    "Element1": "file-123456",
    "Element2": "Name, of, company written in, a very weird way",
    "Element3": "path/to/some/file.txt",
}'


(part of the) script:
Code:
for s in $(echo $JSON | jq "{Element1,Element2,Element3} | to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]");do
export $s
done


The problem I'm having is that Element2 is breaking the line when exporting but if I just run "echo $JSON | jq "{Element1,Element2,Element3} | to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]"" at the cmd line, it looks fine:
Code:
"Element1=file-123456"
    "Element2=Name, of, company written in, a very weird way"
    "Element3=path/to/some/file.txt"


Actual output of script:
Code:
1.bash: line 100: export: `of,': not a valid identifier
1.bash: line 100: export: `company,': not a valid identifier
1.bash: line 100: export: `written,': not a valid identifier


As can be seen, the export command inserts single quotes into the "Element2" and I'm not sure where they come from.


The second variable (Element2) only contains the first element in the string (Name,). The behavior makes sense since the line is broken but for the life in me I cannot understand how or why the export command inserts them.


Any insight is appreciated, thank you!
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Mimic bash history behavior

Does anyone know of a way to mimic the up arrow/down arrow type bash behavior within a shell script? Say I have a scripted menu, and would like to be able to up arrow to bring up the last X number of lines of user input? Thanks to anybody with a suggestion. :) (0 Replies)
Discussion started by: sysera
0 Replies

2. Shell Programming and Scripting

how to make your bash script run on a machine with csh and bash

hi, i have a script that runs on bash and would like to run it on a machine that has csh and bash. the default setting on that machine is csh. i dont want to change my code to run it with a csh shell. is there any way i can run the script (written in bash) on this machine? in other words is there... (3 Replies)
Discussion started by: npatwardhan
3 Replies

3. Shell Programming and Scripting

BASH quoting behavior

The block below isn't a surprise:$ ls file1 file2 file3 $ x=* $ echo $x file1 file2 file3 $ echo '$x' $x $ echo "$x" * $But I found this block a bit bewildering:$ echo $x' >' * $I'm wondering why substitution wasn't performed on the $x, since it was unquoted (as far as I can tell).... (5 Replies)
Discussion started by: na5m
5 Replies

4. Red Hat

BASH command not found strang behavior

Hi all I am relatively new to linux (specifically red hat). I have installed Fedora 13 on my machine and started playing with the terminal when i found a very strange behavior when typing a command that is not found: the terminal does not prompt me back. In other words, i am logged as root (or... (4 Replies)
Discussion started by: abohmeed
4 Replies

5. UNIX for Advanced & Expert Users

Different redirection behavior in BASH/Linux when run under cron vice login ???

run_xfs_fsr is a xfs filesystem maintenance script designed to run under cron. The system is a home theater personal computer running mythbuntu 10.10, and is accessed remotely for these tests. cron runs a script, (xfs_fsr.sh) at 02:30 that runs the subject script under BASH and sets the... (3 Replies)
Discussion started by: keepitsimpleeng
3 Replies

6. UNIX for Advanced & Expert Users

unexpected behavior bash, set -o vi, history -a, and HISTFILE

I am trying to get my history in sync in multiple bash sections and things aren't working the way I expect. Desired behavior, hitting esc-K in all bash sessions (same userid and machine) will use the same history. Observed behavior: Esc-k shows the history of the current session, rather than... (8 Replies)
Discussion started by: gg48gg
8 Replies

7. UNIX for Dummies Questions & Answers

Im new to bash scriping and i found this expression on a bash script what does this mean.

# check host value regex='^(||1|2|25)(\.(||1|2|25)){3}$' if ')" != "" ]; then if ]; then echo host $host not found exit 4 fi elif ]; then echo $host is an invalid host address exit 5 fi espeacailly the top regex part? ---------- Post updated at 06:58 PM ---------- Previous update was... (1 Reply)
Discussion started by: kevin298
1 Replies

8. UNIX for Advanced & Expert Users

Bash : While Loop behavior

Good Morning I think there may be something I dont understand fully. The following code works well, but I dont like the set domen method. #!/bin/bash # domen="y" while do echo " M A I N - M E N U" echo "1. Contents of /etc/passwd" echo "2. List of users currently logged" echo... (10 Replies)
Discussion started by: popeye
10 Replies

9. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

10. UNIX for Beginners Questions & Answers

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed ? Is there any way to get the script names for the process command ? --- Post updated at 08:39 AM --- in KSH (Korn Shell), my command output shows the script names but when run in the Bash Shell... (3 Replies)
Discussion started by: i4ismail
3 Replies
PCT-SCANNER-SCRIPT(1)					      General Commands Manual					     PCT-SCANNER-SCRIPT(1)

NAME
pct-scanner-script - easy scan and create merged DjVu and PDF documents for archiving SYNOPSIS
pct-scanner-script [--help] DESCRIPTION
pct-scanner-script is a bash script and configuration system to easily scan documents and create a digital archiving. It can create DjVu PDF and JPEG outputs, in merged and individual files. It also has a configuration system where different configurations can be defined, making it easy to switch between configurations. Please use pct-scanner-script --help to find all program options, the complete help, and all examples. Features: - auto archiving in merged and individual DjVu, PDF, and JPEG files - auto and manual resume when scanning somehow fails - cascading configuration system, for easy customizing - easy command-line-style bash program, with useful options - archiving made possible with both adf and flatbed scanners - built for productivity and daily use - uses bash, scanadf and other mainstream processing tools - multilanguage commandline output OPTIONS
-h, --help, -? Show summary of options, help, and examples. DEBUGGING
This program is a helper script to easy scan and automated digital document archiving for normal and adf scanners. You can debug this script by running it as bash -x pct-scanner-script [options]. The script is just a nice wrapper for the scanadf, DjVu and PDF tools. SEE ALSO
scanadf(1), AUTHOR
pct-scanner-script and this manual page are written by: Jelle de Jong <jelledejong@powercraft.nl>. March 31, 2009 PCT-SCANNER-SCRIPT(1)
All times are GMT -4. The time now is 05:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy