![강제 대역폭 감소가 필요한 UART 입력으로 텍스트를 복사하거나 리디렉션합니다.](https://linux55.com/image/112205/%EA%B0%95%EC%A0%9C%20%EB%8C%80%EC%97%AD%ED%8F%AD%20%EA%B0%90%EC%86%8C%EA%B0%80%20%ED%95%84%EC%9A%94%ED%95%9C%20UART%20%EC%9E%85%EB%A0%A5%EC%9C%BC%EB%A1%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%EB%B3%B5%EC%82%AC%ED%95%98%EA%B1%B0%EB%82%98%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%A9%EB%8B%88%EB%8B%A4..png)
기본적으로 나는 수많은 텍스트를 입력하는 데 지쳤습니다. 분명히 파일에 입력하고 UART U-Boot에 푸시한 다음 파일을 수정하고 다시 시도하고 싶습니다.
그러나 Shift+Ctrl+C가 screen ttyUSB0 115200
제대로 작동하지 않거나 cat file.cmd > ttyUSB0
.
UART에 복사하는 멋진 방법이 있는 사람이 있나요? 이런 일을 하려는 사람이 나 혼자만 있을 수는 없습니다.
답변1
글쎄, 이 작업을 수행하려면 작은 스크립트를 만들어야 했습니다. 어, 충분합니다.
cat > slowpipe << 'EOF'
#!/usr/bin/env bash
set -eu
data=$(< /dev/stdin)
hz=$(bc -l <<< "1.0 / $1")
while [ -n "$data" ]; do
printf '%s' "${data:0:1}"
data=${data:1}
sleep $hz
done
# XXX It seems to be imposible to save leading newlines in variables,
# you cant have var=$'\n'$'\n' no mater what you do, only one new line can will
# be saved, IFS won't help, or anything. one way is to use `read`, without
# saving all stdin to variable.
echo
EOF
chmod 755 slowpipe
./slowpipe 42 < rpi.cmd >> /dev/ttyUSB0