Pipe
為什麼將輸出重定向到文件會生成表?
我想設置一個 cron 作業來定期記錄測量值。USB記憶棒安裝在路由器中:
user@router:/tmp/home/root# uname -a
Linux 路由器 2.6.36.4brcmarm #2 SMP PREEMPT Sun Mar 20 16:06:18 EDT 2016 armv7l GNU/Linux
user@router:/tmp/home/root# curl http://THERMOSTAT/tstat/humidity >> /tmp/mnt/USBstick/CT80_data/C14HumidityData.txt % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18 0 18 0 0 80 0 --:--:-- --:--:-- --:--:-- 83
為什麼將輸出附加(>>)到文件會產生上表?
不附加時不生成該表:
curl http://THERMOSTAT/tstat/humidity {"humidity":51.00}
是否有抑製表響應的命令選項?
這是 curl 的進度表。從
man curl
PROGRESS METER curl normally displays a progress meter during operations, indicating the amount of transferred data, transfer speeds and estimated time left, etc. The progress meter displays number of bytes and the speeds are in bytes per second. The suffixes (k, M, G, T, P) are 1024 based. For example 1k is 1024 bytes. 1M is 1048576 bytes. curl displays this data to the terminal by default, so if you invoke curl to do an operation and it is about to write data to the terminal, it dis‐ ables the progress meter as otherwise it would mess up the output mixing progress meter and response data. If you want a progress meter for HTTP POST or PUT requests, you need to redirect the response output to a file, using shell redirect (>), -o, --output or similar. It is not the same case for FTP upload as that operation does not spit out any response data to the terminal. If you prefer a progress "bar" instead of the regular meter, -#, --progress-bar is your friend. You can also disable the progress meter completely with the -s, --silent option.