Существует ли команда Linux с именем (h)?

Похоже, что текущий способ получения входных данных через read неверен, поэтому математика выполняется на пустом месте, и в итоге вы не получаете ничего в качестве ответа. Вам просто нужно исправить этот аспект, и остальная часть вашего кода будет работать.

Как читать

Выдержка из вашего оригинального кода показывает, что вы пытались сохранить первое число следующим образом:

echo "Enter the first number"
        read $num1

Вместо этого попробуйте использовать -p для подсказки и назвать переменную num без знака доллара. Вы даже можете проверить следующее read -p ... в командной строке, и вы увидите:

$ read -p "Enter the first number" num1
Enter the first number:

Теперь введите 1:

$ read -p "Enter the first number" num1
Enter the first number: 1

Теперь, если вы echo $num1, вы успешно увидите значение:

$ echo $num1
1
  • -p the_prompt_text - это способ включить подсказку
  • По сравнению с echo, echo добавляет возврат строки в конце. Но поскольку -p этого не делает, хорошей идеей будет дополнительный пробел, как это сделал я, обратите внимание, что после двоеточия : у меня пробел: "Введите первое число: ". Это сделано для того, чтобы вводимые пользователем данные не выглядели набегающими прямо перед двоеточием.
  • при указании переменных для сохранения ответа, правильным синтаксисом для read является отсутствие $, таким образом у нас было read и затем num1

Так что с этим, вы должны быть в состоянии адаптировать read части вашего скрипта и это будет работать нормально.

0
17.09.2018, 20:51
1 ответ

Подобно ll— общепринятый псевдоним для ls -l,h— общепринятый псевдоним для historyили history <some-number>, history— встроенная команда cshдля отображения истории (команды, которые вы ранее запускали ), теперь также находятся в bash,zsh(такие же, как fc -l),ksh(как предварительно -определенный псевдоним дляhist -l)fishиyash(как предварительно -определенная функция ).

Пытаясь раскопать некоторые старые примеры, см., например, этот старый пост юзернета от 1984 года .

Если вы читали, что это упоминается в какой-либо документации, возможно, автор использовал этот псевдоним в своих ~/.cshrc/ ~/.bashrc... или использовал системы, где этот псевдоним был определен для всей системы -. Учитывая, что они упоминают команду help, которая является именем встроенной команды оболочки bash, возможно, это была оболочка, которую они имели в виду.

Чтобы узнать, что hнаходится в вашей оболочке, введите type h, если вы используете оболочку типа Bourne -, или fish, или which h, если используете tcsh, или whatis h, если используете rc. / es... В cshпосмотрите, возвращает ли что-нибудь alias h. Если они возвращают, что hявляется псевдонимом для history, этот псевдоним, вероятно, был определен в одном из файлов конфигурации вашей оболочки.

Фактический синтаксис historyзависит от оболочки. Подробности см. в документации по вашей оболочке(info bash historyдля оболочки bash, например ).

7
28.01.2020, 02:14

Теги

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