Почему я получаю лишнюю пустую строку при запуске 2). Мне 1 нравится 2. Так почему же лишняя строка в 2)?Разница между Linux, когда использовать круглые скобки
1)
export p1=$(cd $(dirname $0) && pwd)
# ^
echo p1
2)
export p2=$(cd $(dirname $0)) && pwd
# ^
echo p2
Использование обратных сигналов не рекомендуется. Вместо этого используйте $ (...), вы можете легко вложить его в него, и его легче читать. В блоке кода он должен быть доступен. –
, потому что cd ничего не печатает на stdout. – anishsane
Вы хотели бы эхо '$ p1' и' $ p2'? Основное различие заключается в том, захвачен ли вывод 'pwd' в переменной или нет. Что касается пустых строк, это похоже на то, что '$ (...)' удаляет завершающие символы новой строки (если не пустое пространство). –