Расширить переменную bash в конвейерной команде [closed]

В Debian повторное создание ключей хоста может произойти с помощью:

rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server
0
05.09.2017, 02:20
1 ответ

Повторять дважды для получения рабочего каталога неправильно. Ты просто хотел этого:

basename `pwd`

(Или basename $PWD, если хотите.)

Помещение команд в конвейер не имеет отношения к этому вопросу, так как кажется, что все дело в цитировании. Если вы действительно хотите изучить детали цитирования, вы можете сравнить cat ReadMe | some_cmd | sortс cat ReadMe | bash -c 'some_cmd' | sort.

Когда пишешь

local container='echo ${wkdir}_my-wpdb_1'

Я не понимаю, какую роль вы надеетесь echoсыграть в этом. Обратите внимание, что одиночная кавычка -запрещает раскрытие переменной $. Разве ты не хочешь просто этого?

local container="${wkdir}_my-wpdb_1"

(Здесь вы можете даже опустить кавычки, так как в рабочем каталоге нет пробелов.)

Выполните отладку с помощью echo $containerили set -x, затем выполните, как указано выше:... | docker exec -i ${container} /usr/bin/mysql...

3
28.01.2020, 02:24

Теги

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