LINUX.ORG.RU

> Не до конца выполняется сценарий bash

Проблема не в этом.

Судя по #!/bin/bash , ты запускаешь этот файл прямым вызовом. Создаётся новый процесс оболочки, из него вызывается gcc-config, затем source /etc/profile обновляет переменные окружения в новом процессе, затем процесс завершается. Старый процсс оболочки остаётся без изменений.

Запусти этот файл в рамках существующей оболочки при помощи source имяфайла. Ну и еще exit 0 убери из кода, ага.

geekless ★★
()
Ответ на: комментарий от Deleted

А и без точки? Никак, наверное?

Un
() автор топика
Ответ на: комментарий от geekless

Сделал, удобно.

Ещё небольшой вопрос. Сценарий теперь выглядит так:

#!/bin/bash

gcc-config x86_64-pc-linux-gnu-$1 2> /dev/null
source /etc/profile
gcc --version

и вместо предупреждения о необходимости сделать . /etc/profile, выводимого gcc-config, зияет пустое пространство:

gcc-ver 4.6.1
 * Switching native-compiler to x86_64-pc-linux-gnu-4.6.1 ...   [ ok ]
>>>Regenerating /etc/ld.so.cache...                                                                            



gcc (Gentoo 4.6.1 p1.0, pie-0.4.5) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая 
коммерческую ценность и применимость для каких-либо целей.

Можно это пространство как-нибудь убрать?

Un
() автор топика
Ответ на: комментарий от Un

gcc-config на stdout выводит этот текст? Можно попробовать дописать к нему пайп | grep '.'

Это вырежет из вывода все строки нулевой длины.

geekless ★★
()
Ответ на: комментарий от geekless

Сработало, но теперь всё форматирование сбилось ) Пожалуй, оставлю как было.

Un
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.