Вы можете использовать awk, собственное приложение linux, полезное для сканирования и обработки файлов с рисунком на строку. Для вашего вопроса это даст то, что вы хотите:
awk 'BEGIN { sum=0 } { sum+=$1 } END {print sum }' file.txt
Трубы также принимают:
cat file.txt | awk 'BEGIN { sum=0 } { sum+=$1 } END {print sum }'
Я не думаю, что проблема имеет какое-то отношение к тому, выполняется ли сценарий с помощью сочетания клавиш или непосредственно в терминале. Это скорее ошибка в вашей ветви if, и скрипт будет поочередно работать и терпеть неудачу.
В ветке if вы написали
kill -SIGSTOP < /tmp/TimChromepid.PSD
, что означает: файла /tmp/TimChromepid.PSD в stdin kill. Но kill ничего не читает от stdin, он просто принимает PID как параметр командной строки, который не был указан. Вот почему он рассказал вам об использовании.
Чтобы исправить это, просто сделайте так же, как и в ветви else, т.е. замените kill -SIGSTOP < /tmp/TimChromepid.PSD на kill -SIGSTOP $(< /tmp/TimChromepid.PSD) или используйте $NMR:
#!/bin/sh
if [ -f /tmp/TimChromepid.RUN ]; then
mv /tmp/TimChromepid.RUN /tmp/TimChromepid.PSD
NMR=$(< /tmp/TimChromepid.PSD)
kill -SIGSTOP $NMR
else
NMR=$(< /tmp/TimChromepid.PSD)
mv /tmp/TimChromepid.PSD /tmp/TimChromepid.RUN
kill -SIGCONT $NMR
fi
Я не думаю, что проблема имеет какое-то отношение к тому, выполняется ли сценарий с помощью сочетания клавиш или непосредственно в терминале. Это скорее ошибка в вашей ветви if, и скрипт будет поочередно работать и терпеть неудачу.
В ветке if вы написали
kill -SIGSTOP < /tmp/TimChromepid.PSD
, что означает: файла /tmp/TimChromepid.PSD в stdin kill. Но kill ничего не читает от stdin, он просто принимает PID как параметр командной строки, который не был указан. Вот почему он рассказал вам об использовании.
Чтобы исправить это, просто сделайте так же, как и в ветви else, т.е. замените kill -SIGSTOP < /tmp/TimChromepid.PSD на kill -SIGSTOP $(< /tmp/TimChromepid.PSD) или используйте $NMR:
#!/bin/sh
if [ -f /tmp/TimChromepid.RUN ]; then
mv /tmp/TimChromepid.RUN /tmp/TimChromepid.PSD
NMR=$(< /tmp/TimChromepid.PSD)
kill -SIGSTOP $NMR
else
NMR=$(< /tmp/TimChromepid.PSD)
mv /tmp/TimChromepid.PSD /tmp/TimChromepid.RUN
kill -SIGCONT $NMR
fi