帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:BASH  DEF  别名  默认  

问题:

默认别名为 警告 command命令


notify-send --urgency=low -i"$([ $? = 0 ] && echo terminal || echo error)""$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')"



执行 alert 给出带有文本收费通知和终端 icon的通知。 用一个像 alert 这样的参数执行它会给出通知的通知警告 !! 和

notify-send 命令和使用通知发送。echo。history。tail和 sed的复杂别名有什么区别?

在这种情况下,这个别名是有用的或者是它刚刚创建的双关( sudo sudo sudo sudo sudo apt-get install

我正在使用 Ubuntu 12.10


回答 1:

你可以使用手册页获取有关命令组合在这里的内容的详细信息。 下面是这些命令的用途:


"$([ $? = 0 ] && echo terminal || echo error)"



This,-i,successful,successful,per,per,per,per,per,per,per,per,echo,echo,echo,echo,echo,echo,echo,echo,echo,echo,echo,echo,execution,execution,execution,execution。

 
history|tail -n1



 

"。"。获取执行的最后一个命令。

sed 来解析文本以使用 notify-send 消息显示文本。

按以下步骤理解这些尝试:


true; echo"$([ $? = 0 ] && echo terminal || echo error)"



。this这就会影响到我们的终端终端。


false; echo"$([ $? = 0 ] && echo terminal || echo error)"



。这就会造成错误。。


notify-send -i terminal 'Please note the icon..' 'the default icon for the terminal has been used. You can specify any other icon of your choice'



还有

 
echo $?



 

"。"。对于了解最后执行的命令的退出值,非常有用。


echo"$(echo"the output of this command enclosed within $(...)") is being supplied here in the outer echo command where is used as an argument."



nested嵌套 echo 作为一个简单演示,用于在命令组合中使用 $()


回答 2:

让我来解释一下这里发生了什么:


notify-send --urgency=low -i"$([ $? = 0 ] && echo terminal || echo error)""$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')"



1--urgency=low

-u,--urgency=LEVEL指定紧急级别( 低,正常,临界)。

2-i"$([ $? = 0 ] && echo terminal || echo error)"


 -i, --icon=ICON[,ICON...]


 Specifies an icon filename or stock icon to display.



这部分 "$([ $? = 0 ] && echo terminal || echo error)"$? 是( 或者成功) 返回的最后一个错误。 如果最后一个命令退出代码为 0,则返回文本"终端",没有错误。 如果退出代码不是 0,则返回"错误"。

最后我们得到"终端"或者"错误"icon。

3$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')

history|tail -n1 返回历史记录中的最后一个命令。

sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''') 这可以是 separeted 2块中的。

3.1 删除所有前面的空格和制表符,然后所有数值,并同时删除末尾的空格和制表符。

3.2 s/[;&|]s*alert$// 删除前面的符号 ;&|,任何制表符和空格以及单词"提醒"。

它只是从符号中清除最后执行的命令,以及最后一个字符"提醒"。

所以如果你使用这样的东西:


echo"Hello alert" | alert



它将显示前面命令的警告。


回答 3:

我认为当前的答案解释了警报工作的内部工作的 但是我认为原始操作需要花费 我将尝试解释explain我在它的声明中的commends commends commends。

它基本上用来警告你当一个命令完成时,当你不能坐在一个终端等待它完成。 如果推荐示例 sleep 10; alert 将显示命令(。sleep 10 中的)的通知,如果它成功的( 睡眠 10需要 10秒才能完成),则会显示一个终端 icon。

从这里可以看出,应该将它用作 <command>; alert,并将命令替换为命令。 我个人必须每天通过wget下载一个视频,因为它定期失败。 所以我只是追加了下载命令,以便在它失败时立即通知我,这样可以继续( 我的通知被修改,以提醒我注意)。


回答 4:

因为它需要得到你键入的消息,所以 sedtailhistory的原因是。 ( 由于某些原因,你键入的内容不能通过任何变量直接获得)。 它必须使用 history 获取所键入的所有内容,tail -n1 获取最后输入的内容,并在开始时删除某些 正规表达式 命令。

只要在这里展开一个条件命令,就可以测试 $? = 0 是否是 true。 我可以说,如果它是 true,那么它来自终端,应该被视为一个正常的消息。 否则,应该将它视为错误,并且出现错误 icon。




文章标签:DEF  默认  BASH  别名  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语