Я пытаюсь запустить следующий скрипт удара, но он ничего не отображает на окне терминала, и я не получаю ошибок также. Я пытаюсь отобразить значение currentid, которое покажут на терминальном экране как вывод при использовании встроенной функции, когда я выполняю его через командную строку.
#! /bin/bash
currentid()
{
return 608
echo builtin currentid "$@"
}
currentid
Я собираюсь предположить, что Вы пытаетесь добраться pid
из Вашего сценария и использования это как переменная позже? Если так, вот некоторые подсказки:
Вам не нужно 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
.
Я собираюсь взять прыжок веры здесь и предположить это с currentid
Вы пытаетесь добраться pid
или идентификатор Процесса сценария. Исправьте меня если currentid
относится к чему-то еще.
Получить ток pid
из Вашего сценария можно использовать $$
или $BASHPID
. Можно узнать больше о различиях в Справочнике Bash. Я не уверен, почему Вы - жесткое кодирование возврат 608, но если Вы хотите измениться pid
из Вашего сценария к этому разъясните свой вопрос.
Имея это в виду, Ваш сценарий был бы похож на это:
#!/bin/bash
printf "%s" "$$"
Который печатает Ваш ток pid
безопасно. Но действительно имейте в виду, что можно звонить $$
или $BASHPID
в Вашем сценарии позже для того, что Вы хотите.
Некоторые более общие советы:
prinf
echo
Удачи!