我有一个 bash 脚本,它在一次执行之前根据一些参数在字符串中构建一个命令行。连接到命令字符串的部分应该由管道分隔,以促进通过每个组件的数据“流”。
一个非常简单的例子:
#!/bin/bash
part1=gzip -c
part2=some_other_command
cmd="cat infile"
if [ ! "$part1" = "" ]
then
cmd+=" | $part1"
fi
if [ ! "$part2" = "" ]
then
cmd+=" | $part2"
fi
cmd+="> outfile"
#show command. It looks ok
echo $cmd
#run the command. fails with pipes
$cmd
Run Code Online (Sandbox Code Playgroud)
出于某种原因,管道似乎不起作用。当我运行这个脚本时,我收到不同的错误消息,通常与命令的第一部分(在第一个管道之前)有关。
所以我的问题是是否可以以这种方式构建命令,最好的方法是什么?
我刚刚在我的 18.04 机器上升级了软件包,重新启动后,我在右上角看到一个新符号,看起来像一个盾牌,上面有一个红色的“拒绝”符号。

经过进一步调查,这原来是“livepatch”功能的图标。它通知我“livepatch”已关闭,并敦促我注册以启用它。
我对 livepatch 的兴趣为零。我从未选择安装此功能。我想如果我不做点什么,这个盾牌就会一直很烦人,并且 24/7-365 都在我面前?
无论如何,我需要帮助来永久删除它,就像它从一开始就不存在一样。就像从我的操作系统中完全删除一样。任何帮助深表感谢。
EDIT-1:澄清,以防您认为我只是想隐藏通知。我实际上想完全删除它并只留下未链接的索引节点。
notification uninstall notification-area canonical-livepatch