команда read не ждет ввода
у меня проблема с выполнением простого скрипта в bash. Сценарий выглядит так:
#! /bin/sh
read -p 'press [ENTER] to continue deleting line'
sudo sed -ie '$d' /home/hpccuser/.profile
и когда я выполнить скрипт ./ script вывод выглядит следующим образом:
press [ENTER] to continue deleting line./script: 3: read: arg count
[sudo] password for user
Я запускаю команду read непосредственно в терминале (копировать и вставлять из скрипта в терминал), и она отлично работает; она ждет ввода (так же, как пауза).
3 ответов
потому что ваш скрипт начинается с #!/bin/sh
, а не #!/bin/bash
, у вас не гарантируется наличие расширений bash (например,read -p
), и может полагаться только на стандартам функциональности.
посмотреть соответствующий документ стандартов для списка функций, которые гарантированно присутствуют в read
.
в этом случае вам, вероятно, понадобятся две строки, одна из которых будет печатать, а другая-читать:
printf 'press [ENTER] to continue deleting...'
read _
вы можете сделать это с помощью команды echo тоже!:
echo "press [ENTER] to continue deleting line"
read continue