Lớp lót 1 để lấy mã đánh dấu hoạt động tốt từ dòng lệnh, nhưng tôi gặp lỗi này khi chạy trong tập lệnh Tôi chạy 1 dòng lấy VÉ từ dòng lệnh, điều đó không gây ra lỗi cho tôi Nhưng, tôi tin rằng đó là do dữ liệu trống trong mảng? curl -k -s https://api.earningscalendar.net/?date=20190518
[]
#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
Thông báo lỗi ./earnings.sh ADSK
parse error: Invalid numeric literal at line 1, column 6
parse error: Invalid numeric literal at line 1, column 6
parse error: Invalid numeric literal at line 1, column 6
parse error: Invalid numeric literal at line 1, column 6
ADSK, amc is on 20190523
Giải pháp tốt nhấtĐể gỡ lỗi, bạn có thể kiểm tra đầu ra do lệnh "curl" tạo ra. Khi tôi chạy nó trong một vòng lặp, không có jq, đầu ra thường là "Thử lại sau", như thể có một số loại điều tiết Một giải pháp thay thế tương tự để xem xét là chạy một chương trình jq rất cơ bản, e. g #!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
echo newdate=$newdate
curl -k -s "https://api.earningscalendar.net/?date=$newdate" | jq type
done
Giải pháp liên quanJson - lỗi phân tích cú pháp. Chữ số không hợp lệ ở dòng 1, cột 9Ngoài việc hoàn toàn không sử dụng jq, bạn có hai tùy chọn chính (1) tiền xử lý không phải JSON để biến nó thành JSON (2) sử dụng tùy chọn dòng lệnh -R, e. g echo "X-RateLimit-Reset: 1452786798" | jq -R 'split(":")'
[
"X-RateLimit-Reset",
" 1452786798"
]
Do đó, nếu bạn biết giá trị sẽ là số echo "X-RateLimit-Reset: 1452786798" |
jq -Rc 'split(":") | {(.[0]) : (.[1]|tonumber)}'
{"X-RateLimit-Reset":1452786798}
Lưu ý rằng mặc dù "j" trong jq là dành cho JSON, nhưng jq (với tùy chọn -R) chỉ phù hợp để xử lý văn bản Json - lỗi phân tích cú pháp. Chữ số không hợp lệ ở dòng 2, cột 0Kiểm tra cẩn thận tập lệnh của bạn so với tập lệnh bạn đã đăng trong câu hỏi. Nếu chúng khớp nhau thì câu trả lời rất dễ Không có "total" : 126 trong chuỗi bạn chuyển đến #!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
0 bởi vì bạn chuyển nó, đầu ra của #!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
1 là #!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
2Điều bạn có thể muốn là gửi tới #!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
0 nội dung của tệp #!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
2 và công cụ cho việc này là #!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
5 Linux - Phần mềm Diễn đàn này dành cho các vấn đề về Phần mềm Có một vấn đề cài đặt một chương trình mới? 23-03-2019, 04. 39 giờ sáng #Trả lời. lỗi phân tích cú pháp jq. Chữ số không hợp lệ ở dòng 1, cột 5
Khi tôi đang cố chuyển một chuỗi JSON được phân tích cú pháp thành một biến, tôi nhận được thông tin sau lỗi phân tích cú pháp. Chữ số không hợp lệ ở dòng 1, cột 5 Dòng mã sau đang đưa ra lỗi đó z="$(echo curl -s https. //www. quandl. com/api/v3/bộ dữ liệu. 9ZzBbKAs11rAZv. /Users/itadmin/jq -r '[getpath(["dataset","data"])]. dây')" Trợ giúp được đánh giá cao 23-03-2019, 04. 42 giờ sáng # Phân bổ. debian/ubuntu/suse
có lẽ bạn cần loại bỏ tiếng vang đó 1 thành viên thấy bài đăng này hữu ích LinuxCâu hỏi. org đang tìm kiếm những người quan tâm đến việc viết Bài xã luận, Bài báo, Bài đánh giá, v.v. Nếu bạn muốn đóng góp nội dung, hãy cho chúng tôi biết |