spget
✅ Verified · no code on this page ·
The badge reports the whole
docs-verifysuite, not this chapter alone.
Read one PV, print it, exit. The equivalent of EPICS Base pvget.
spget [OPTIONS] [PV]
Requires the client feature. Takes exactly one PV — pass several names
and it errors with Unexpected argument. Loop in the shell if you need
more than one.
Flags
The shared client flags apply (see the index).
spget adds none of its own.
-F/--fields is the one worth knowing: it narrows the field request
sent to the server, so -F value fetches the value without the alarm,
timestamp, and display blocks.
Output
$ spget VAC:PRESSURE
VAC:PRESSURE 2026-08-04 10:35:23.578 0.000001
Three columns: name, the record's timeStamp, and the value. An alarm
appends severity and status:
$ spget DEMO:SETPOINT
DEMO:SETPOINT 2026-08-06 09:14:58.052 46 MAJOR READ HIHI
Structured payloads print inline:
$ spget SIM:STATE
SIM:STATE 2026-08-06 09:14:32.958 {index=0, choices=["Idle", "Running", "Error"]}
$ spget VAC:RGA
VAC:RGA 2026-08-06 09:35:20.331 [0.909297, 0.808496, 0.675463, ...]
The array above is elided for the page; spget prints every element,
however many there are. A 1024-point waveform is one very long line.
Gotchas
The printed value is formatted, not raw. Small doubles collapse:
$ spget VAC:SETPOINT # the record holds 5e-7
VAC:SETPOINT 2026-08-06 09:35:33.545 0
The wire value is intact — but neither -F value nor --json will show it
to you, because both go through the same formatter:
$ spget -F value VAC:SETPOINT
VAC:SETPOINT 0
$ spget --json VAC:SETPOINT
{"alarm":"alarm=OK status=NO_ALARM(0)","pv":"VAC:SETPOINT",
"timestamp":"2026-08-06 09:35:33.545","units":null,
"value":"value=0.000000, ts=1786008933"}
spget --raw dumps the payload bytes, which does contain the true double;
otherwise read the PV from a client library rather than a CLI.
Search failure looks like a timeout. If nothing answers, you get
Timeout("search response") — not "PV not found". No server on the
network can distinguish the two, so neither can the client. Check the PV
name, then splist, then --server.
See also
Reading and writing does the same thing from the Rust and Python APIs.