我使用以下命令創建了一個 mysql docker 容器 mysqlcontainer:
docker exec -it mysqlcontainer -d mysql/mysql-server
我運行 docker logs mysqlcontainer 并得到以下資訊:
[Entrypoint] GENERATED ROOT PASSWORD: FB=?ySG5,3#@kur&,Wj459fk2Gy2C_O8
[Entrypoint] ignoring /docker-entrypoint-initdb.d/*
[Entrypoint] MySQL init process done. Ready for start up.
2022-04-22T07:49:23.295242Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld:
我想將這個生成的 root 密碼放入一個變數中,以便我可以在 shell 腳本中使用這個變數。
我使用以下命令獲取密碼,但如何將密碼放入變數中
docker logs mysqlcontainer 2>&1 | grep GENERATED
[Entrypoint] GENERATED ROOT PASSWORD: FB=?ySG5,3#@kur&,Wj459fk2Gy2C_O8
uj5u.com熱心網友回復:
當你說你想要一個變數中的密碼時,我假設你的意思是一個 shell 變數。如果是這樣,你可以做這樣的事情
export myvar=$(docker logs mysqlcontainer 2>&1 | awk '/GENERATED ROOT PASSWORD/ {print $5}')
然后
echo $myvar
應該給你密碼。
它通過在日志中查找字串“GENERATED ROOT PASSWORD”并將變數設定為該行中的第 5 個單詞來作業。
uj5u.com熱心網友回復:
對于那些不熟悉 awk 的人來說,這是一個非 awk 版本的解決方案。shellcheck.net也不鼓勵在一條指令中宣告和使用變數,我更喜歡將指令分開
MYVAR=$(docker logs mysqlcontainer 2>&1 | grep 'GENERATED ROOT PASSWORD' | cut -f5 -d" ")
export MYVAR
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/462191.html
上一篇:如何用帶分隔符的多行添加行首?
