首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让bash脚本在功能键按下时返回true (用作Sylpheed过滤器)

要让bash脚本在功能键按下时返回true,可以使用read命令结合特殊的终端控制序列来实现。以下是一个示例脚本:

代码语言:txt
复制
#!/bin/bash

# 保存终端设置
old_setting=$(stty -g)

# 设置终端为非规范模式,禁用回显
stty -icanon -echo

# 读取一个字符
read -n 1 key

# 恢复终端设置
stty "$old_setting"

# 判断按下的键是否为功能键
if [[ $key == $'\e[11~' ]]; then
    echo "true"
else
    echo "false"
fi

在这个脚本中,首先使用stty -g命令保存当前的终端设置,然后使用stty -icanon -echo命令将终端设置为非规范模式,禁用回显。接下来使用read -n 1 key命令读取一个字符,并将其保存在变量key中。然后使用stty "$old_setting"命令恢复终端设置。最后,通过判断key的值是否等于特定的终端控制序列$'\e[11~'来确定是否按下了功能键。

请注意,不同的终端模拟器可能会使用不同的终端控制序列来表示功能键。在上面的示例中,使用的是常见的终端控制序列之一。如果你使用的终端模拟器不同,请根据其文档或参考资料查找相应的终端控制序列。

此外,由于要求不能提及特定的云计算品牌商,因此无法提供腾讯云相关产品和产品介绍链接地址。但是,腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

shell中read控制台不能删除内容的解决方式

但是,使用时遇到一个问题:运行上传脚本,输入commit信息,输错了 backspace 删除键无法全部删除,只删除一个字符,然后就无法删除了。...如果用户没有指定时间内输入完成,那么 read 将会返回一个非 0 的退出状态,表示读取失败。 -u fd 使用文件描述符 fd 作为输入源,而不是标准输入,类似于重定向。...问题解决 我是windows系统上,运行.sh脚本遇到这个问题,这里应该是read获取用户输入的时候,第一次进行了编码转换,第二次就不转换了,直接将功能键对应显式成其字符。...致使输入删除功能键只能删除一位。...相同的问题会出现在你这些功能键backspace键、↑、↓、←、→、F1、F2、F3、F4 输入后显示结果如下: 1 ^H^H^H^[[A^[[B^[[D^[[C^[OP^[OQ^[OR^[OS 解决方式

42410
  • 【Linux】BASH基本攻略,分分钟PK掉黑客达人

    终端现在只提示符显示$。但这只是暂时的,一旦终端关闭,将重置为其原始设置。...入门 为掌握Bash入门知识,请尝试下列简单命令: · echo:返回shell提示符下键入的内容,类似于Python中打印。 · date:显示当前时间和日期。 · cal:显示当月的日历。...Bash命令基本知识 Bash命令是Bash可以独立执行的最小代码单元。这些命令告诉Bash需要做什么。Bash通常从用户方接收单个命令,并在命令执行后返回给用户。...默认情况,它不会删除目录,但如果在目录中用作rm-r *,则该目录下所有目录文件都会被删除。接下来请删除之前创建的foo.txt文件。...排序过滤器首字母顺序或数字顺序对行进行排序 cat命令首先读取文件fruits.txt的内容,然后对其进行排序。 uniq代表unique,它提供输入流中特殊行的数量。

    2.5K30

    13典藏AutoHotKey脚本您生活更轻松

    我分享我最喜欢和最常用的AutoHotKey脚本,这些脚本使我的日常任务更加轻松,这可能会对您有所帮助。 开始之前,假定您已经知道如何安装和配置AutoHotKey。...访问资源管理器中当前目录的上一级 当您位于文件夹中,通常需要访问上一级目录。早期版本的Windows中,退格键可以完成工作,但现在退格键是切回到上一个访问的目录。...图片 ; 资源管理器中鼠标访问上一级目录 #IfWinActive, ahk_class CabinetWClass ~MButton:: Send !...这个简单的脚本非常有用,即使您不小心它们,锁定状态也不会改变。...例如,处理电子表格,您可能会经常访问计算器应用程序,这时将计算器置于电子表格上面的话会非常方便。使用AutoHotKey,您只需一行代码即可轻松完成此操作。 ; 将当前窗口置顶 shift+空格。

    2.5K20

    jquery.datatables 分页功能

    Datatables 插件的基本用法就不再介绍了,这里主要分享一使用它实现服务器端获取数据的分页处理。...为了能够适用于所有具有列searchable的true。 search[regex]-- 布尔 // true如果全局过滤器应该被视为高级搜索的正则表达式,false否则。...请注意,正常情况,服务器端处理脚本不会在大型数据集上执行正常的表达式搜索,但在技术上可以由脚本自行决定。 order[i][column] -- int // 应该应用排序的列。...与全局搜索一样,通常,服务器端处理脚本大型数据集上不会执行正常的表达式搜索,但在技术上可以由脚本自行决定。...在这两种情况,i都是一个整数,它将改变以指示数组值。大多数现代化的服务器端脚本环境中,这些数据将作为数组自动提供给您。

    4.9K20

    电脑键盘功能基础知识汇总

    电脑键盘是我们平时使用电脑最常用的输入设备之一,了解键盘的基本功能,不见能提升工作效率,还能让我们使用电脑更加得心应手。...功能键的用途因软件不同而异,以下是常见的功能键用法:F1:常用作帮助键,许多软件中 F1 可以打开帮助文档。F2: Windows 系统中,F2 键常用于重命名文件或文件夹。...F9-F12:这些键不同的软件中用途各异,常用于执行快捷命令或宏操作。小提示:某些键盘上,功能键区可能与音量调节、屏幕亮度等功能组合使用,通常需要按 Fn 键与功能键同时使用。...三、数字小键盘的功能数字小键盘位于键盘的右侧,虽然看似简单,但在输入数字和执行计算非常有用。你可以通过 Num Lock 键来开启或关闭数字键盘的功能。...Windows 键: Windows 键可以打开开始菜单,还可以与其他按键组合执行快捷操作,例如 Windows + D 可以最小化所有窗口并显示桌面。

    23310

    Mac 高效工作指南

    …… mac高效工作指南 系统设置 将功能键(F1-F12)设置为标准的功能键 Mac键盘最上面一排的功能键(F1-F12)默认是系统亮度和声音之类的快捷设置,当Mac作为你的娱乐电脑,这样的默认设置是非常方便的...替换系统默认Shell Bash作为大多数系统默认安装的Shell,大家都多少有所接触,Zsh和Bash类似都是一个Shell,但是Zsh更注重用户体验和与人的交互,OS X默认也安装好了Zsh,然而你想自己从头开始配置一个顺手的...Homebrew Homebrew是一款终端下的命令程序包管理器,安装非常简单,复制如下命令终端下运行,回车并输入密码后等待安装成功: ruby -e "$(curl -fsSL https://raw.githubusercontent.com...Homebrew Cask就是这样一款终端下的程序管理器,它扩展了Homebrew,作为Mac App Store的有益补充,方便你快速维护日常软件的安装升级和卸载,复制如下命令终端下运行,回车后等待安装成功...: brew install caskroom/cask/brew-cask 那如何使用Homebrew Cask来安装Google Chrome呢?

    1.9K100

    Shell脚本——内置命令

    一、内置命令 所谓 Shell 内置命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。...-e 获取用户输入的时候,对功能键进行编码转换,不会直接显式功能键对应的字符。 -n num 读取 num 个字符,而不是整行字符。 -p prompt 显示提示信息,提示内容为 prompt。...如果用户没有指定时间内输入完成,那么 read 将会返回一个非 0 的退出 五、exit命令 exit 是一个 Shell 内置命令,用来退出当前 Shell 进程,并返回一个退出状态;使用$?...Shell 进程执行出错,可以根据退出状态来判断具体出现了什么错误,比如打开一个文件,我们可以指定 1 表示文件不存在,2 表示文件没有读取权限,3 表示文件类型不对。...六、下表列出了 Bash Shell 中直接可用的内建命令 命令 说明 : 扩展参数列表,执行重定向操作 .

    2.1K10

    帅瞎了!手机也能写Python代码!手把手教你在手机或平板上配置Python环境!

    Esc键 音量加 + T -> Tab键 音量加 + 1 -> F1(音量增加 + 2 → F2…以此类推) 音量加 + 0 -> F10 音量加 + B -> Alt + B,使用readline返回一个单词...Shell配置 安装oh-my-zsh Shell的类型有很多种,Termux默认使用的是bash,这里使用功能更强大的zsh来代替bash。...使用nano、neovim等终端编辑器修改.zshrc文件来进行配置,plugins部分添加vi-mode项,开启vi模式。命令行状态Esc键,即可进入vi模式的普通模式。 ?...NeoVim中运行Python脚本 可以通过NeoVim中添加自定义功能,从而在编写时运行当前Python脚本。..."普通模式r来运行Python脚本 noremap r :call RunPython() func!

    6.8K22

    shell脚本编写思路

    批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,Shell一次把这些命令执行完,而不必一条一条地敲命令。...我们要知道bash和sh不是一个东西,我们需要了解,bash完全兼容sh,也就是说,用sh写的脚本可以不加修改的bash中执行。...输入完毕后,Esc,然后输入 wq,enter好了已经保存并且退出了。...$# 传递给脚本或函数的参数个数。$* 传递给脚本或函数的所有参数。传递给脚本或函数的所有参数。被双引号包含,与​* 稍有不同,下面将会讲到。$? 上个命令的退出状态,或函数的返回值。...[ ​b ] 返回 true。 -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ ​b ] 返回 false。 -lt 检测左边的数是否大于右边的,如果是,则返回 true

    1.6K30

    高效的Shell编程建议及入坑

    11)脚本中有命令运行失败/未声明变量时候退出脚本 如果脚本中某条命令运行失败,我们不应该其继续运行,因为这样可能会影响脚本的其余部分,导致逻辑错误。...# 如果命令运行失败脚本退出执行 set -o errexit # 或 set -e 如果脚本中使用到未声明的变量同样可能导致逻辑错误,可以用下面的命令设置脚本使用到未声明的变量退出执行: #.../usr/bin/env bash # 若命令失败脚本退出 set -o errexit # 若未设置的变量被使用脚本退出 set -o nounset URL=$1 DIRECTORY=$2...因为dos/window一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix一次回车键只输入“换行(LF)”,所以修改的sh文件每行都会多了一个CR,所以Linux...1、editplus中“文档->文件格式(CR/LF)->UNIX”,这样Linux就能unix的格式保存文件 2、vim中,输入:set ff=unix,同样也是转换成unix的格式。

    82510

    Centos7笔记 | 用户和组、Linux文件权限、文件属性

    小王公司服务器,使用Root用户通过SecureCRT远程登陆后,如图5-3所示,发现登录终端变成bash-4.1#,是什么原因导致?以及如何修复为正常的登录SHELL环境,请写出答案。...Sgid执行者临时拥有属组的权限,目录中创建的文件自动继承该目录用户组,可以对目录生效。 Sbit权限:特殊权限位(粘滞位)。Sbit可以确保用户只能删除自己的文件,不能删除其他人的文件。...vim是vi的升级版本,它是安装在Linux操作系统中的一个软件,官网为:www.vim.org Linux Shell终端下默认执行vim命令,Enter键后: 默认进入命令行模式; 命令行模式...i进入文本输入模式; ESC进入命令行模式; :进入末行模式。...“vim” 为全键盘操作的编辑器,所以各个模式都有很多功能键。下面列举一,其中咱们认为常用的会用红色标出,需要你多加练习,另外不常用的你也需要知道。 ?

    1.2K30

    Vim编辑器与Shell命令脚本

    字符串 文本中从下至上搜索该字符串 /字符串 文本中从上至搜索该字符串 大家在平日里一定要多使用Vim编辑器,一旦把Vim的各种命令练熟,后面在编辑配置文件,效率就会有很大的提升。...由于Linux系统中ping命令不会自动终止,因此需要手动Ctrl+C组合键来强行结束进程。...为了Shell脚本程序更好地满足用户的一些实时需求,以便灵活完成工作,必须要让脚本程序能够像之前执行命令那样,接收用户输入的参数。...而且每当循环到let TIMES++命令都会TIMES变量内的数值加1,用来统计循环总计执行了多少次。这可以用户得知总共猜测了多少次之后,才猜对价格。...尽管我们现在已经有了功能彪悍的脚本程序来执行一些批处理工作,但是,如果仍然需要在每天凌晨两点敲击键盘回车键来执行这个脚本程序,就太痛苦了(当然,也可以训练您的小猫半夜下回车键)。

    1.3K10

    如何在Ubuntu 16.04上安装和使用Byobu进行终端管理

    这些为您提供了许多不同的选择和可能性,并且它足够灵活,可以您完成任务并您完成任务。 本教程将介绍如何安装和配置Byobu以及如何使用其最常用的功能。...这意味着您可以保持脚本运行并在连接之间打开文件没有问题。您还可以将多个活动登录连接到同一会话。 一旦Byobu配置为登录启动,您可以自定义它使用的多路复用器。...第3步 - 设置后端多路复用器 默认情况,Byobu将tmux用作后端多路复用器。但是,如果您愿意使用screen,则可以轻松更改已启用的后端。...Byobu现在已完全配置,所以我们来看看如何使用它。 第5步 - 使用会话 Byobu使用功能键(F1通过F12键盘的顶行)作为默认键绑定,可以访问所有可用功能。...F6干净地分离当前会话并使您退出SSH连接。它不会关闭Byobu,因此下次连接到服务器,将恢复当前会话。这是Byobu最有用的功能之一; 您可以安全断开连接保持命令运行和文档打开。

    9.9K00

    如何友好的把Python和Bash结合在一起

    sort命令的输出是字母顺序重新排列文件的每一行。随后将其传递给uniq命令,该命令将删除所有重复的名称。最后,uniq的输出传递到wc命令。wc是计数命令,并且设置了-l标志,它返回行数。...在这种情况,shell脚本就是答案。Shell脚本是由Shell读取并按顺序执行的命令列表。Shell脚本还支持某些编程语言基础知识,例如变量,流控制和数据结构。...代替uniq,Python脚本可以用作链中的另一个命令。这是一个执行此操作的Python程序(我的示例中,我将此文件称为namescount.py): #!...接下来要做的是顺序显示最常使用该系统的用户。这可以Python级别完成,但是让我们使用核心UNIX实用程序已经提供的实用程序来实现它。以前,我使用sort命令对字母进行排序。...当需要在链中进行一些繁重的工作,可以编写一个非常清晰,简洁的Python脚本,该脚本将执行其所需的工作,然后将责任转移给链中的下一个链接。

    98510

    Web应用程序防火墙(WAF)bypass技术讨论(一)

    攻击者的恶意数据可以欺骗解释器没有授权的情况执行非预期的命令或访问敏感数据。...因为没有-e参数,所以我的kali里需要使用nc.traditional而不是nc,以便/bin/bash连接后执行,payload如下: /???/?c.??????????? -e /???...这可以RCE上使用,以便在目标系统上获取文件和目录,例如: ? 但是为什么使用通配符(特别是问号)可以逃避WAF规则集?我先从Sucuri WAF开始解释。...可以netnea网站上找到等级分组的规则列表:https://www.netnea.com/cms/core-rule-set-inventory/ Paranoia Level 1 and 2 (...无论如何,当你ModSecurity上写一个新的SecRule,请记住,可能有很多方法可以bypass你的过滤器/正则表达式。 文章来源:Freebuf 作者:生如夏花

    2.9K40

    深入了解定制 Bash | Linux 中国

    Bash 非交互模式运行的例子是,当命令和数据从文件或 shell 脚本通过 管道 传送到 Bash 。...也可以 Bash 启动通过向其传递 -login 标志来要求进入登录模式。要注意一点,Bash 的登录模式与非交互模式并不互斥。可以 Bash 同时以登录模式和非交互模式运行。...这是用户 Fedora 上打开终端通常会进入的 shell 类型。当 Bash 以非交互模式启动 —— 就像运行脚本那样 —— 它会寻找 BASH_ENV环境变量。...=-1 HISTFILESIZE=-1 上面例子中的 direxpand 选项,可以 Bash 文件名补全,用单词展开结果替换目录名。...你使用终端和电脑的姿势,取决于你如何修改(或不修改)你的点文件。 如果你很好奇自己的命令行处于什么会话状态,使用下面这个脚本来判断一。 #!

    1.1K30

    Bash变量赋值时报错command not found

    /bin/bash STR = "Hello World" echo $STR 当我运行 bash test.sh ,我会得到以下信息: test.sh: line 2: STR: command not...我在网上看过一些非常基础/初学者的 bash 脚本教程,这是他们如何声明变量的……所以我不确定我做错了什么。 我使用的是Ubuntu服务器 9.10。是的,bash 位于 /bin/bash。...当你写成: STR= foo bash 试图在其环境中将 STR 设置为空字符串的情况运行命令 foo。...如果扩展后还有任何单词,第一个单词被用作命令名,其余的单词是参数。 3. 每个变量赋值中,'=' 后面的文本赋值给变量之前会经历波浪号扩展、参数扩展、命令替换、算术扩展和引号删除。...相关阅读: 如何通过一个Bash定界符来分割一个字符串 Bash中单引号和双引号的区别 为什么Bash中的"["和"]"周围应该有空格

    38120

    Shell 内建命令:Shell 的内在魔力

    shell 内建命令(内置命令)今天我们来深入挖掘一 Shell 的内在魔力——内建命令。...-e获取用户输入的时候,对功能键进行编码转换,不会直接显式功能键对应的字符。-n num读取 num 个字符,而不是整行字符。-p prompt显示提示信息,提示内容为 prompt。...如果用户没有指定时间内输入完成,那么 read 将会返回一个非 0 的退出状态,表示读取失败。-u fd使用文件描述符 fd 作为输入源,而不是标准输入,类似于重定向。#!.../bin/bash# 指定时间内输入密码if read -t 20 -sp "Enter password in 20 seconds(once) ====> " pass1 && printf...表示取消属性# aAfFgilprtux 表示具体的选项declare [+/-] [aAfFgilprtux] [变量名=变量值]aAfFgilprtux 支持的选项有:选项说明-f name列出之前由用户脚本中定义的函数名称和函数体

    10900
    领券