Сценарий приостановки работы в Интернете работает из командной строки, но не из ярлыка

Вы можете использовать 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 }'
0
задан 21 May 2018 в 12:22

2 ответа

Я не думаю, что проблема имеет какое-то отношение к тому, выполняется ли сценарий с помощью сочетания клавиш или непосредственно в терминале. Это скорее ошибка в вашей ветви 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
1
ответ дан 17 July 2018 в 14:16

Я не думаю, что проблема имеет какое-то отношение к тому, выполняется ли сценарий с помощью сочетания клавиш или непосредственно в терминале. Это скорее ошибка в вашей ветви 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
1
ответ дан 20 July 2018 в 14:19

Другие вопросы по тегам:

Похожие вопросы: