Удар Ubuntu Маленькая Справка Сценария

Я пытаюсь запустить следующий скрипт удара, но он ничего не отображает на окне терминала, и я не получаю ошибок также. Я пытаюсь отобразить значение currentid, которое покажут на терминальном экране как вывод при использовании встроенной функции, когда я выполняю его через командную строку.

#! /bin/bash

currentid()
{
return 608

echo builtin currentid "$@"

}

currentid
1
задан 11 June 2017 в 00:38

1 ответ

Я собираюсь предположить, что Вы пытаетесь добраться pid из Вашего сценария и использования это как переменная позже? Если так, вот некоторые подсказки:

  1. Вам не нужно builtin команда как currentid не a builtin насколько мне известно. Вы видите что builtin действительно любит так:

    $ help builtin
    builtin: builtin [shell-builtin [arg ...]]
    Execute shell builtins.
    
    Execute SHELL-BUILTIN with arguments ARGs without performing command
    lookup.  This is useful when you wish to reimplement a shell builtin
    as a shell function, but need to execute the builtin within the function.
    
    Exit Status:
    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
    not a shell builtin..
    

    Можно найти список всего builtins с compgen -b.

  2. Я собираюсь взять прыжок веры здесь и предположить это с currentid Вы пытаетесь добраться pid или идентификатор Процесса сценария. Исправьте меня если currentid относится к чему-то еще.

    Получить ток pid из Вашего сценария можно использовать $$ или $BASHPID. Можно узнать больше о различиях в Справочнике Bash. Я не уверен, почему Вы - жесткое кодирование возврат 608, но если Вы хотите измениться pid из Вашего сценария к этому разъясните свой вопрос.

    Имея это в виду, Ваш сценарий был бы похож на это:

    #!/bin/bash
    printf "%s" "$$"
    

    Который печатает Ваш ток pid безопасно. Но действительно имейте в виду, что можно звонить $$ или $BASHPID в Вашем сценарии позже для того, что Вы хотите.

Некоторые более общие советы:

  • Вот большой ответ от нашего родственного сайта о том, почему использовать prinf echo
  • Справочник Bash удивителен для разметки каждой доступной опции.
  • Bash Greg Wiki имеет некоторый яркий пример реального кода и лучшей практики.

Удачи!

0
ответ дан 8 December 2019 в 05:04

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

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