You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Symbol listed twice crashes ticker.sh script. Example:
$ ./ticker.sh GOOG GOOG
./ticker.sh: line 43: [: POSTPOST: binary operator expected
./ticker.sh: line 51: [: too many arguments
./ticker.sh: line 58: [: too many arguments
GOOG 1265.131265.13 0.00./ticker.sh: line 81: printf: (0.33%)(0.33%): invalid number
4.14 4.1400146 0.00
Problem is that once symbol is listed more than once, "jq" returns not a string but an array.
The fix:
$ git diff
diff --git a/ticker.sh b/ticker.sh
index 6bceda6..acf2435 100755
--- a/ticker.sh
+++ b/ticker.sh
@@ -34,13 +34,13 @@ results=$(curl --silent "$API_ENDPOINT&fields=$fields&symbols=$symbols" \
| jq '.quoteResponse .result')
query () {
- echo $results | jq -r ".[] | select(.symbol == \"$1\") | .$2"
+ echo $results | jq -r "[.[] | select(.symbol == \"$1\") | .$2][0]"
}
for symbol in $(IFS=' '; echo "${SYMBOLS[*]}"); do
marketState="$(query $symbol 'marketState')"
- if [ -z $marketState ]; then
+ if [ "$marketState" = "null" ]; then
printf 'No results for symbol "%s"\n' $symbol
continue
fi
There is one more problem with some symbols those are not active anymore. I am not sure, for example "YHOO" or "NV". printf command crashes because it cannot print "null" as number. I suggest following fix but I am not sure if it is the right solution; maybe some message should be written:
@@ -69,6 +69,12 @@ for symbol in $(IFS=' '; echo "${SYMBOLS[*]}"); do
percent=$(query $symbol 'regularMarketChangePercent')
fi
+ if [ "$price" = "null" ]; then
+ price="0"
+ diff="0"
+ percent="0"
+ fi
+
if [ "$diff" == "0" ]; then
color=
elif ( echo "$diff" | grep -q ^- ); then
The text was updated successfully, but these errors were encountered:
Uh oh!
There was an error while loading. Please reload this page.
Symbol listed twice crashes ticker.sh script. Example:
Problem is that once symbol is listed more than once, "jq" returns not a string but an array.
The fix:
Example after the fix:
There is one more problem with some symbols those are not active anymore. I am not sure, for example "YHOO" or "NV". printf command crashes because it cannot print "null" as number. I suggest following fix but I am not sure if it is the right solution; maybe some message should be written:
The text was updated successfully, but these errors were encountered: