quote
나는 매 순간 주가를 업데이트하는 작은 쉘 스크립트를 만들기 위해 이 프로그램을 사용하려고 합니다 . quote
인터넷에 대한 액세스가 필요하므로 약간의 지연 시간으로 실행됩니다. 매번 화면을 지워야 하지만 quote
작업이 완료된 후 출력을 인쇄하기 전에 화면을 지워 cat
다음 사이에 눈에 띄는 지연이 없도록 하고 싶습니다.clear
cat
while true
do
quote spy gld aapl amzn goog nflx tsla f gm msft | ??? clear | cat
sleep 1
done
명령 ???
을 실행하고(물론 출력을 인쇄한 후 ) quote
출력 을 . 이 순서는 무엇입니까?clear
quote
cat
답변1
작동하게 되어 기쁘지만, "시계"를 재창조하고 있는 것 같습니다.
또한 1초 간격으로 쿼리하는 것은 약간 과잉일까요? 특히 "관찰"을 통해 실행 간의 차이를 확인할 수 있다면 20초 이상을 사용하겠습니다.
watch -n 20 -d quote spy gld aapl amzn goog nflx tsla f gm msft
답변2
견적이 완료된 후 cat이 출력을 인쇄하기 전에 지우고 싶습니다.
clear
인쇄가 완료되기 전에 계속 시작 되므로 찾고 있는 내용이 실제로 실행되지 않습니다 cat
(쉽습니다 :). 파이프라인은 생산자와 소비자를 병렬로 실행하기 때문에 문제를 해결하지 못합니다. 대신 출력을 저장 한 다음 표시해야 합니다. 출력을 저장quote … | { clear; cat; }
cat
quote
quote
명령 대체변수로.
text=$(quote spy gld aapl amzn goog nflx tsla f gm msft)
clear
echo "$text"
이렇게 하면 출력 끝의 빈 줄이 제거됩니다. 이것이 허용되지 않는 경우 끝에 비어 있지 않은 추가 줄을 인쇄하고 제거하여 이 기능을 해결할 수 있습니다. 이 명령은 echo
로 시작하는 일부 짧은 문자열도 삭제합니다 -
.
text=$(quote spy gld aapl amzn goog nflx tsla f gm msft; echo .)
clear
printf %s "${text%.}"
답변3
정확히 내가 요청한 것은 아니지만 작업이 완료되었습니다. 의 출력에 변수를 설정했습니다 quote
. Bash를 처음 접했기 때문에 처음에는 이런 생각을 하지 못했습니다.
clear
while true
do
OUTPUT="$(quote spy gld aapl amzn goog nflx tsla f gm msft)"
clear
echo "${OUTPUT}"
sleep 1
done