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
HPFTODIT(1)						      General Commands Manual						       HPFTODIT(1)

NAME
hpftodit - create font description files for use with groff -Tlj4 SYNOPSIS
hpftodit [ -sv ] [ -in ] tfm_file map_file font It is possible to have whitespace between the -i command line option and its parameter. DESCRIPTION
hpftodit creates a font file for use with groff -Tlj4 from an HP tagged font metric file. tfm_file is the name of the tagged font metric file for the font. map_file is a file giving the groff names for characters in the font; this file should consist of a sequence of lines of the form: n c1 c2 ... where n is a decimal integer giving the MSL number of the character, and c1, c2,... are the groff names of the character. font is the name of the groff font file. The groff font file is written to font. The -s option should be given if the font is special (a font is special if troff should search it whenever a character is not found in the current font.) If the font is special, it should be listed in the fonts command in the DESC file; if it is not special, there is no need to list it, since troff can automatically mount it when it's first used. If the -i option is used, hpftodit will automatically generate an italic correction, a left italic correction and a subscript correction for each character (the significance of these parameters is explained in groff_font(5)). OPTIONS
-v Print the version number. -s The font is special. The effect of this option is to add the special command to the font file. -in Generate an italic correction for each character so that the character's width plus the character's italic correction is equal to n design units plus the amount by which the right edge of the character's bounding is to the right of the character's origin. If this would result in a negative italic correction, use a zero italic correction instead. There are 8782 design units per em for Intelli- font fonts. Also generate a subscript correction equal to the product of the tangent of the slant of the font and four fifths of the x-height of the font. If this would result in a subscript correction greater than the italic correction, use a subscript correction equal to the italic correction instead. Also generate a left italic correction for each character equal to n design units plus the amount by which the left edge of the character's bounding box is to the left of the character's origin. The left italic correction may be negative. This option is normally needed only with italic (or oblique) fonts. FILES
/usr/share/groff/1.18.1/font/devlj4/DESC Device description file. /usr/share/groff/1.18.1/font/devlj4/F Font description file for font F. BUGS
This program was written without the benefit of complete, official documentation on the tagged font metric format. It is therefore likely that it will fail to work on tfm files that are dissimilar to those for the internal fonts on the Laserjet 4, with which it was tested: TrueType tfm files are not supported. SEE ALSO
groff(1), grolj4(1), groff_font(5) Groff Version 1.18.1 27 June 2001 HPFTODIT(1)
All times are GMT -4. The time now is 02:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy