Как убедиться, что встроенное эхо-сообщение оболочки вызвано так, что оно не отображается в списке процессов?

Будет ли это видно в списке процессов, если строка ниже выполняется из командной строки или сценария оболочки

bash -c "echo $password" 

или

мне просто нужно сделать echo $password из bash в командной строке или внутри сценария оболочки bash

есть ли какой-либо тест, который я могу сделать, чтобы проверить такую ​​видимость. Я просто пытался это сделать, но я не смог увидеть его в списке процессов с ps -ef | grep testscript ps -ef | grep testscript

testscript:

 i=0 while (( i < 100 )) do ((i=i+1)) sleep 1 echo $$ echo hello uname done 

2 Solutions collect form web for “Как убедиться, что встроенное эхо-сообщение оболочки вызвано так, что оно не отображается в списке процессов?”

Просто заставьте его использовать встроенный:

 builtin echo foo 

Если echo не встроено, это не удастся.

Аргументы для встроенного устройства никогда не будут отображаться в любом выпуске ps , потому что встроенное приложение не является отдельной программой со своей собственной командной строкой. Все современные оболочки (за исключением некоторых сильно урезанных конфигураций BusyBox), включая все версии bash, имеют встроенное echo .

Обратите внимание, что если вы вызываете bash -c "echo $password" , тогда пароль будет отображаться для всех, чтобы увидеть, потому что он встроен в команду, которую вы запускаете с помощью bash . Вызов оболочки просто для вызова ее команды echo бессмыслен, поэтому, надеюсь, вы этого не делаете.

Можно ввести пароль в переменную среды, если вам нужно передать его другому процессу. В отличие от аргументов командной строки, переменные среды не подвергаются другим пользователям под Linux и большинством других устройств.

  • Как я могу упростить этот сценарий bash, который печатает количество файлов в рабочем каталоге?
  • «Дружественные» имена цветов терминала в сценариях оболочки?
  • Как суммировать числа внутри многих 2D-массивов
  • Есть ли способ использовать апострофы в командах sed?
  • xargs - добавить каждый аргумент с параметром
  • получение списка дочерних процессов с помощью функции фоновой оболочки
  • Универсальная альтернативная альтернатива non-bash `time`?
  • Редактирование файла свойств Java с помощью Bash
  • Shell Script для изоляции файлов, разбросанных по разным папкам
  • Предотвращение расширения определенного пространства в переменной
  • Использование файла ASCII в mailx
  • Interesting Posts

    Что указывают разные элементы версии в имени debian?

    Как записать мой полный экран с аудио?

    kvm usb modem passthrough

    Различное поведение eval "command \" $ @ \ "", "$ @" и "$ (echo $ @)" при использовании в качестве аргументов

    Как просмотреть все процессы предков?

    Как установить CentOS 6 через запоминающее устройство USB?

    Fedora 19 – Загрузка не отображает экран входа в систему

    Могу ли я уменьшить уровень привилегий на хранилище сертификатов монов?

    while цикл работает только один раз?

    почему я не могу установить пакеты с rpm? Я получаю «блокировку транзакций»

    Умный способ выполнить аналогичную замену (не достаточно простую для diff) в нескольких файлах?

    chmod 755 прекратил доступ к базам данных

    Я изменил свой PATH, и теперь для каждой команды он возвращает команду «не найден»

    Решение для получения данных из памяти процесса

    iconv незаконная входная последовательность – почему?

    Linux и Unix - лучшая ОС в мире.