Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在shell脚本中使文本闪烁_Bash_Blink - Fatal编程技术网

Bash 如何在shell脚本中使文本闪烁

Bash 如何在shell脚本中使文本闪烁,bash,blink,Bash,Blink,我有以下代码: echo”\033[33mTitle程序\033[0m” 这会使颜色变为黄色 如何使文本“程序标题”闪烁?据我所知,它的意思是: echo " \033[5mTitle of the Program\033[0m" 唯一的变化是在标题之前,33米被5米取代。参见 请注意,有些系统会过滤掉闪烁,因为闪烁非常烦人。您的里程数可能会有所不同。如果没有闪烁,则尝试添加-e 您可能需要将-e选项添加到echo(至少我使用的所有或大多数系统都需要此选项)。以下内容将告诉您的系统闪烁文本:

我有以下代码:

echo”\033[33mTitle程序\033[0m”

这会使颜色变为黄色


如何使文本“程序标题”闪烁?

据我所知,它的意思是:

echo " \033[5mTitle of the Program\033[0m"
唯一的变化是在标题之前,33米被5米取代。参见

请注意,有些系统会过滤掉闪烁,因为闪烁非常烦人。您的里程数可能会有所不同。

如果没有闪烁,则尝试添加
-e
您可能需要将
-e
选项添加到
echo
(至少我使用的所有或大多数系统都需要此选项)。以下内容将告诉您的系统闪烁文本:

echo  -e "\033[5mTitle of the Program\033[0m"
你可以有闪烁和颜色 你不必选择黄色或闪烁。你也可以吃蛋糕:

echo  -e "\033[33;5mTitle of the Program\033[0m"
有些系统忽略闪烁代码 您的系统可能会忽略闪烁代码。这似乎很常见。如果您想突出文本,但闪烁被忽略,您可以使用
7
反转颜色:

echo  -e "\033[33;7mTitle of the Program\033[0m"
或者您可以使用闪烁和颜色反转(和黄色):

您是否可以使闪烁工作取决于终端仿真器。系统本身与此无关

问题中给出的示例非常接近,只需更改转义序列即可“使用”任何:

建议的
-e
是不必要的(这是一种巴沙主义,非标准,通常是不必要的)。将
<7
(反向)更改为
<5
(闪烁)会执行要求的操作

您可以使用,例如

为了达到相同的效果,有两个区别:

$ infocmp vte xterm
comparing vte to xterm.
    comparing booleans.
        km: F:T.
        mc5i: F:T.
        npc: F:T.
    comparing numbers.
    comparing strings.
        blink: NULL, '\E[5m'.
        cnorm: '\E[?25h', '\E[?12l\E[?25h'.
        cvvis: NULL, '\E[?12;25h'.
        enacs: '\E)0', NULL.
        is2: '\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8', '\E[!p\E[?3;4l\E[4l\E>'.
        kb2: '\E[E', '\EOE'.
        kfnd: '\E[1~', NULL.
        kslt: '\E[4~', NULL.
        mc0: NULL, '\E[i'.
        mc4: NULL, '\E[4i'.
        mc5: NULL, '\E[5i'.
        rep: NULL, '%p1%c\E[%p2%{1}%-%db'.
        rmacs: '^O', '\E(B'.
        rmcup: '\E[2J\E[?47l\E8', '\E[?1049l'.
        rmm: NULL, '\E[?1034l'.
        rs2: '\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h', '\E[!p\E[?3;4l\E[4l\E>'.
        setb: NULL, '\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m'.
        setf: NULL, '\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m'.
        sgr: '\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;', '%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m'.
        sgr0: '\E[0m\017', '\E(B\E[m'.
        smacs: '^N', '\E(0'.
        smcup: '\E7\E[?47h', '\E[?1049h'.
        smm: NULL, '\E[?1034h'.
  • 这句话可以说更具可读性
  • 实际上使用了已知的终端功能,但是
  • 假设您正在使用合适的终端描述,即
    $TERM
例如,VTE(用于各种终端的库,例如gnome终端)不支持blink(并且可以在各种错误报告中找到其开发人员对该主题的意见)。用于显示相应的终端功能,以及一些其他差异:

$ infocmp vte xterm
comparing vte to xterm.
    comparing booleans.
        km: F:T.
        mc5i: F:T.
        npc: F:T.
    comparing numbers.
    comparing strings.
        blink: NULL, '\E[5m'.
        cnorm: '\E[?25h', '\E[?12l\E[?25h'.
        cvvis: NULL, '\E[?12;25h'.
        enacs: '\E)0', NULL.
        is2: '\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8', '\E[!p\E[?3;4l\E[4l\E>'.
        kb2: '\E[E', '\EOE'.
        kfnd: '\E[1~', NULL.
        kslt: '\E[4~', NULL.
        mc0: NULL, '\E[i'.
        mc4: NULL, '\E[4i'.
        mc5: NULL, '\E[5i'.
        rep: NULL, '%p1%c\E[%p2%{1}%-%db'.
        rmacs: '^O', '\E(B'.
        rmcup: '\E[2J\E[?47l\E8', '\E[?1049l'.
        rmm: NULL, '\E[?1034l'.
        rs2: '\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h', '\E[!p\E[?3;4l\E[4l\E>'.
        setb: NULL, '\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m'.
        setf: NULL, '\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m'.
        sgr: '\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;', '%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m'.
        sgr0: '\E[0m\017', '\E(B\E[m'.
        smacs: '^N', '\E(0'.
        smcup: '\E7\E[?47h', '\E[?1049h'.
        smm: NULL, '\E[?1034h'.

如果您碰巧使用KDE
konsole
,则差异会更长(尽管
konsole
恰好支持闪烁)。

在bash脚本中使行闪烁的小方法

for (( i=0;i<=3;i++))
do
#Below line will deleted the before printed line
echo -en "\033[1A"
echo -en "EmpNo:$empno already exists\n";
sleep 0.4s;
#Below line to print a blank line
echo -en "\033[1A"
echo -en "                                                            \n";                                                                         
sleep 0.2s;
done
echo -en "\033[2A"
echo -en "                                                            \n";
echo -en "\033[1A"
echo -en "Enter the empno       : "; read empno1;

对于((i=0;i只需使用
printf
而不是
echo

printf "\e[6;33mTitle of the Program\e[0m"
该行打印带有黄色闪烁文本的程序标题

  • 导出变量
  • echo
    中使用可获得所需效果

  • tput-blink
    为您提供了什么?您可能希望通过管道连接到
    od
    hextdump
    xxd
    或类似的工具将其转换为十六进制:
    tput-blink | xxd
    我刚刚运行了tput-blink,它产生了等效的结果(并且没有工作)。大多数终端不支持blink,因为它很烦人。”许多人说(包括我自己)强烈反对“blink”属性。幸运的是,它在我所知道的任何终端模拟器中都不起作用。”——我只是把它扔出去,但我旁边的IBM 3161终端确实支持闪烁。我只花了大约半个小时弄明白为什么irssi的默认主题在所有地方都显示闪烁文本。(如果有人通过谷歌发现了这一点,解决方案就是这个主题)…konsole和xterm支持根据这个列表闪烁。我测试了konsole,它可以工作。
    for (( i=0;i<=3;i++))
    do
    #Below line will deleted the before printed line
    echo -en "\033[1A"
    echo -en "EmpNo:$empno already exists\n";
    sleep 0.4s;
    #Below line to print a blank line
    echo -en "\033[1A"
    echo -en "                                                            \n";                                                                         
    sleep 0.2s;
    done
    echo -en "\033[2A"
    echo -en "                                                            \n";
    echo -en "\033[1A"
    echo -en "Enter the empno       : "; read empno1;
    
    printf "\e[6;33mTitle of the Program\e[0m"
    
    export YELLOWIT="\e[1;3;5;43m"
    export NC="\e[0m"
    
    echo -e "\n${YELLOWIT}### RESTORE FROM USB - Firefox Bookmarks ###${NC}\n"