Sponsored Content
Top Forums Shell Programming and Scripting How to define a variable in a BASH script by using a JSON file online? Post 302870263 by wisecracker on Friday 1st of November 2013 03:12:39 PM
Old 11-01-2013
This is a hack but will give you the latest version from the URL you posted.

The command "curl" IS required otherwise the default builtins are used...

Note this is on a Macbook Pro 13 inch, circa August 2012, OSX 10.7.5, Default bash terminal.

I have left the commented out commands so that you can re-edit them in again to see
how it works...
Code:
#!/bin/bash --posix
# OSX 10.7.5, default bash terminal.
# The _json_ version can be virtually anything but must NOT include '"' and ','...
# Obtain the relevant _text_ file.
# NOTE THAT THIS IS A HACK!
curl "https://s3.amazonaws.com/Minecraft.Download/versions/versions.json" > /tmp/jsonfile.dat
# Get the file into a variable...
text=$(cat < /tmp/jsonfile.dat)
# echo "$text"
# Ensure IFS is stored for future rplacement.
ifs_str="$IFS"
IFS=" "
# Use an array as a hack to get to the correct part...
array=($text)
# Check that the file contains the MCVERSION number with extras.
# This assumes that the file format remains the same upon every version.
version=$(echo "${array[5]}")
# echo "$version"
# You now have the version wrapped in inverted commas and a comma too...
# From here you can remove the '"' and ',' using builtins...
MCVERSION=""
decimal=0
subscript=0
length=$[ ${#version} - 1 ]
while [ $subscript -le $length ]
do
	# Remove the inverted commas...
	decimal=$(printf "%d" \'${version:$subscript:1})
	if [ $decimal -eq 44 ]
	then
		break
	fi
	if [ $decimal -eq 34 ]
	then
		subscript=$[ $subscript + 1 ]
	else
		MCVERSION=$MCVERSION${version:$subscript:1}
		subscript=$[ $subscript + 1 ]
	fi
done
# Print the final string...
echo "" 
echo "$MCVERSION"
echo ""
# Replace the original IFS...
IFS="$ifs_str"
# Get the length as a final check...
# length="${#MCVERSION}"
# echo "$length"

The results on this machine...
Code:
Last login: Fri Nov  1 19:03:30 on ttys000
AMIGA:barrywalker~> ./json.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15240  100 15240    0     0  13546      0  0:00:01  0:00:01 --:--:-- 15179

1.7.2

AMIGA:barrywalker~> _

It is now up to you to modify as required...

Hope it helps...
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to define a variable with variable definition is stored in a variable?

Hi all, I have a variable say var1 (output from somewhere, which I can't change)which store something like this: echo $var1 name=fred age=25 address="123 abc" password=pass1234 how can I make the variable $name, $age, $address and $password contain the info? I mean do this in a... (1 Reply)
Discussion started by: freddy1228
1 Replies

2. Shell Programming and Scripting

bash - define a variable

Hello, I would like to define a variable based on another variable: a=5 b$a=100 This does not work. What is the right way to do it? Thanks ---------- Post updated at 07:37 PM ---------- Previous update was at 07:33 PM ---------- Found my answer with the search function (did not... (0 Replies)
Discussion started by: jolecanard
0 Replies

3. Shell Programming and Scripting

question about define variable.

Hi, Unix Gurus, In our existing file, there is a script like #!/bin/sh step=${1:-0} cur_step=10 if ... My question is what's "${1:-0}" mean? I know it defines a variable but I don't know what's (1:-0) mean? :wall: Thanks in advance. (2 Replies)
Discussion started by: ken002
2 Replies

4. Shell Programming and Scripting

Define variable from file.

HI I have file A.txt _1A _2A _3A _4A I want define all as different variable. $1A=_1A $2B=_2A $3C=_3A $4D=_4A Now i can use any variable in my script. (3 Replies)
Discussion started by: pareshkp
3 Replies

5. Shell Programming and Scripting

Bash script - cygwin (powershell?) pull from GitHub API Parse JSON

All, Have a weird issue where i need to generate a report from GitHub monthly detailing user accounts and the last time they logged in. I'm using a windows box to do this (work issued) and would like to know if anyone has any experience scripting for GitAPI using windows / cygwin / powershell?... (9 Replies)
Discussion started by: ChocoTaco
9 Replies

6. Shell Programming and Scripting

How to define two digits variable in shell script?

Dear Shell script Experts, I am working on shell script which is defined here, qsub_seq.csh . The purpose of this script is to read few input files (with defined starting index and last index) and make processing faster over server. For some task, I had 1064 of input files, so I wrote another... (8 Replies)
Discussion started by: emily
8 Replies

7. Shell Programming and Scripting

Parsing and Editing a json file with bash script

I am trying to automate editing of a json file using bash script. The file I initially receive is { "appMap": { "URL1": { "name": "a" }, "URL2": { "name": "b" }, "URL3": { "name": "c" }, } WHat I would like to do is replace... (5 Replies)
Discussion started by: Junaid Subhani
5 Replies

8. Shell Programming and Scripting

JSON structure to table form in awk, bash

Hello guys, I want to parse a JSON file in order to get the data in a table form. My JSON file is like this: { "document":{ "page": }, { "column": } ] }, { ... (6 Replies)
Discussion started by: Gescad
6 Replies

9. Shell Programming and Scripting

Building JSON command with bash script

Hello. I'm new to bash script and I'm learning the basics by writing some scripts. Recently a friend of mine asked me if I could try to write a script to him to automate a couple of processes that uses JSON RPCs. I'll try to explain in few words the workflow just to contextualize the problem.... (48 Replies)
Discussion started by: psysc0rpi0n
48 Replies
Mojo::JSON(3pm) 					User Contributed Perl Documentation					   Mojo::JSON(3pm)

NAME
Mojo::JSON - Minimalistic JSON SYNOPSIS
use Mojo::JSON; my $json = Mojo::JSON->new; my $bytes = $json->encode({foo => [1, 2], bar => 'hello!'}); my $hash = $json->decode($bytes); DESCRIPTION
Mojo::JSON is a minimalistic and relaxed implementation of RFC 4627. While it is possibly the fastest pure-Perl JSON parser available, you should not use it for validation. It supports normal Perl data types like "Scalar", "Array" reference, "Hash" reference and will try to call the "TO_JSON" method on blessed references, or stringify them if it doesn't exist. [1, -2, 3] -> [1, -2, 3] {"foo": "bar"} -> {foo => 'bar'} Literal names will be translated to and from Mojo::JSON constants or a similar native Perl value. true -> Mojo::JSON->true false -> Mojo::JSON->false null -> undef Decoding UTF-16 (LE/BE) and UTF-32 (LE/BE) will be handled transparently, encoding will only generate UTF-8. The two unicode whitespace characters "u2028" and "u2029" will always be escaped to make JSONP easier. ATTRIBUTES
Mojo::JSON implements the following attributes. "error" my $err = $json->error; $json = $json->error('Oops!'); Parser errors. METHODS
Mojo::JSON inherits all methods from Mojo::Base and implements the following new ones. "decode" my $array = $json->decode($bytes); my $hash = $json->decode($bytes); Decode JSON. "encode" my $bytes = $json->encode({foo => 'bar'}); Encode Perl structure. "false" my $false = Mojo::JSON->false; my $false = $json->false; False value, used because Perl has no native equivalent. "true" my $true = Mojo::JSON->true; my $true = $json->true; True value, used because Perl has no native equivalent. SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>. perl v5.14.2 2012-09-05 Mojo::JSON(3pm)
All times are GMT -4. The time now is 04:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy