我正在尝试捕获$ variable中的特定输出,用于我的远程服务器配置,它将一个接一个地运行命令。
在安装了pm2 node package的ubuntu环境中,它附带了一个命令,它将输出我需要运行的东西。
命令1:
PM2 = $(pm2 startup systemd)
当我运行echo $ PM2时输出这个字符串:
[PM2] Init System found: systemd [PM2] You have to run this command as root. Execute the following command: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username
我需要将这个确切的输出捕获为$ var:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username
所以我可以让我的cloud init配置文件在下一个命令中运行它。
命令2:
$PM2
如何让$ PM2只有
的输出值sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username
答案 0 :(得分:1)
这可能有所帮助:
pm2response=$(pm2 startup systemd) # Use lower case for user defined variables
${pm2response#*Execute the following command:} # Shell param expansion
但是这假设你的字符串中有短语Execute the following command:
,虽然我猜我是正确的。祝你好运!
注意:有关SHELL参数替换的更多信息[ here ]