bash отображает печать в той же строке

Возможно, вам понадобится установить необходимое программное обеспечение PulseAudio

Если вы видите уведомление, в котором говорится: «Для воспроизведения звука вам может потребоваться установить необходимое программное обеспечение PulseAudio», это означает, что Firefox не может найти или использовать PulseAudio , Начиная с Firefox 52, программное обеспечение PulseAudio должно воспроизводить любой звук из Firefox. Большинство дистрибутивов Linux теперь поставляются с предустановленной PulseAudio.

Используйте диспетчер пакетов программного обеспечения вашей системы и убедитесь, что PulseAudio установлен правильно.

PulseAudio можно скачать по этой ссылке: https://www.freedesktop.org/wiki/Software/PulseAudio/

https://www.freedesktop.org / вики / Программное обеспечение / PulseAudio /

1
задан 12 March 2018 в 16:16

3 ответа

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

Q: почему «отладка rospackage find» отображается в выражении эха окончательного выражения эха, а не в его

A: вывод следующей строки:

echo 'debug rosbash first $pkgdir', $pkgdir

Будет:

Текст «debug rosbash first $ pkgdir», за которым следует результат команды в $pkgdir, которая является командой _ros_package_find

. В приведенном ниже примере вы можете видеть, что переменная tempvar содержит результат выполнения команды ls при запуске [ f9] - вы получите одну строку результата:

$ ls
123  234  345
$ tempvar=$(ls)
$ echo "debug debug", $tempvar
debug debug, 123 234 345

При запуске двух echo commands, например ниже - вы получите две строки вывода:

$ echo "debug debug"; echo $tempvar
debug debug
123 234 345

Модифицированная версия вашего скрипта:

#!/bin/bash
pkgdir=$(_ros_package_find "$1")
echo "debug rosbash first $pkgdir", "$pkgdir"

function _ros_package_find {
    echo 'debug rospackage find', "$1"
    local loc
    loc=$(export ROS_CACHE_TIMEOUT=-1.0 && rospack find "$1" 2> /dev/null)
    echo 'loc', $?
    if [[ $? != 0 ]]; then
        return 1
    fi
    echo "$loc"
    return 0
}
1
ответ дан 22 May 2018 в 12:37

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

Q: почему «отладка rospackage find» отображается в выражении эха окончательного выражения эха, а не в его

A: вывод следующей строки:

echo 'debug rosbash first $pkgdir', $pkgdir

Будет:

Текст «debug rosbash first $ pkgdir», за которым следует результат команды в $pkgdir, которая является командой _ros_package_find

. В приведенном ниже примере вы можете видеть, что переменная tempvar содержит результат выполнения команды ls при запуске echo "debug debug", $tempvar - вы получите одну строку результата:

$ ls 123 234 345 $ tempvar=$(ls) $ echo "debug debug", $tempvar debug debug, 123 234 345

При запуске двух echo commands, например ниже - вы получите две строки вывода:

$ echo "debug debug"; echo $tempvar debug debug 123 234 345

Модифицированная версия вашего скрипта:

#!/bin/bash pkgdir=$(_ros_package_find "$1") echo "debug rosbash first $pkgdir", "$pkgdir" function _ros_package_find { echo 'debug rospackage find', "$1" local loc loc=$(export ROS_CACHE_TIMEOUT=-1.0 && rospack find "$1" 2> /dev/null) echo 'loc', $? if [[ $? != 0 ]]; then return 1 fi echo "$loc" return 0 }
1
ответ дан 17 July 2018 в 19:02

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

Q: почему «отладка rospackage find» отображается в выражении эха окончательного выражения эха, а не в его

A: вывод следующей строки:

echo 'debug rosbash first $pkgdir', $pkgdir

Будет:

Текст «debug rosbash first $ pkgdir», за которым следует результат команды в $pkgdir, которая является командой _ros_package_find

. В приведенном ниже примере вы можете видеть, что переменная tempvar содержит результат выполнения команды ls при запуске echo "debug debug", $tempvar - вы получите одну строку результата:

$ ls 123 234 345 $ tempvar=$(ls) $ echo "debug debug", $tempvar debug debug, 123 234 345

При запуске двух echo commands, например ниже - вы получите две строки вывода:

$ echo "debug debug"; echo $tempvar debug debug 123 234 345

Модифицированная версия вашего скрипта:

#!/bin/bash pkgdir=$(_ros_package_find "$1") echo "debug rosbash first $pkgdir", "$pkgdir" function _ros_package_find { echo 'debug rospackage find', "$1" local loc loc=$(export ROS_CACHE_TIMEOUT=-1.0 && rospack find "$1" 2> /dev/null) echo 'loc', $? if [[ $? != 0 ]]; then return 1 fi echo "$loc" return 0 }
1
ответ дан 23 July 2018 в 19:48

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

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