【Linux命令行与Shell脚本编程】 第十七章 图形化桌面环境脚本编程

Linux命令行与Shell脚本编程

第十七章 图形化桌面环境脚本编程


文章目录

  • Linux命令行与Shell脚本编程
  • 七.图形化桌面环境脚本编程
    • 7.1.创建文本菜单
      • 7.1.1.创建菜单布局
      • 7.1.2.创建菜单逻辑
      • 7.1.3.整合脚本菜单
      • 7.1.4.使用select命令
    • 7.2.创建文本窗口部件
      • 7.2.1.dialog软件包部件
        • msgbox部件
        • yesno部件
        • inputbox部件
        • textbox部件
        • menu部件
        • fselect部件
      • 7.2.2.dialog选项
      • 7.2.3.脚本中使用dialog
    • 7.3.图形化窗口部件
      • 7.3.1.KDE环境
        • kdialog部件
        • 使用kdialog
      • 7.3.2.GNOME环境
        • zenity部件
        • 使用zenity


七.图形化桌面环境脚本编程

7.1.创建文本菜单

菜单式脚本通常会清空显示区域,然后显示可用的菜单项列表。用户可以按下与每个菜单项关联的字母或数字来选择相应的选项。
shell脚本菜单的核心是case命令.根据用户在菜单上的选择来执行相应的命令。

7.1.1.创建菜单布局

一般使用echo来显示文本字符.
最后使用read获取用户输入。

function menu {clearechoecho -e "\t\t\tSys Admin Menu\n"echo -e "\t1. Display disk space"echo -e "\t2. Display logged on users"echo -e "\t3. Display memory usage"echo -e "\t0. Exit program\n\n"echo -en "\t\tEnter option: "read -n 1 option
}

7.1.2.创建菜单逻辑

menu
case $option in
0)break ;;
1)diskspace ;;
2)whoseon ;;
3)memusage ;;
*)clearecho "Sorry, wrong selection";;
esac

7.1.3.整合脚本菜单

#!/bin/bash
function diskspace {cleardf -k
}
function whoseon {clearwho
}
function memusage {clearcat /proc/meminfo
}
function menu {clearechoecho -e "\t\t\tSys Admin Menu\n"echo -e "\t1. Display disk space"echo -e "\t2. Display logged on users"echo -e "\t3. Display memory usage"echo -e "\t0. Exit program\n\n"echo -en "\t\tEnter option: "read -n 1 option
}while [ 1 ]
domenucase $option in0)break ;;1)diskspace ;;2)whoseon ;;3)memusage ;;*)clearecho "Sorry, wrong selection";;esacecho -en "\n\n\t\t\tHit any key to continue"read -n 1 line
done
clear

while循环用于持续处理菜单,除非用户选择了选项0,即通过break命令跳出while循环。

7.1.4.使用select命令

创建文本菜单的一半工夫需要花费在建立菜单布局和获取用户输入上.
而 select命令只需要一个命令就可以创建出菜单,然后获取输入并自动处理。

select variable in list
docommands
done

list参数是由空格分隔的菜单项列表,该列表构成了整个菜单。
select命令会将每个列表项显示成一个带编号的菜单项,然后显示一个由PS3环境变量定义的特殊提示符,指示用户做出选择。
对整合脚本菜单的菜单脚本优化:

#!/bin/bash
function diskspace {cleardf -k
}
function whoseon {clearwho
}
function memusage {clearcat /proc/meminfo
}PS3="Enter option: "
select option in "Display disk space" "Display logged on users" "Display memory usage" "Exit program"
docase $option in"Exit program")break ;;"Display disk space")diskspace ;;"Display logged on users")whoseon ;;"Display memory usage")memusage ;;*)clearecho "Sorry, wrong selection";;esac
done
clear

7.2.创建文本窗口部件

相较于图形化窗口而言,交互脚本中仍然欠缺很多东西.

dialog软件包最早是Savio Lam编写的一款小巧的工具,现在由Thomas E. Dickey负责维护。
dialog能够用ANSI转义控制字符,在文本环境中创建标准的窗口对话框。
可以轻而易举地将这些对话框融入自己的shell脚本中,以实现与用户的交互。

安装软件包

#Ubuntu Linux发行版
sudo apt-get install dialog
#基于Red Hat的发行版(比如CentOS)系统
sudo dnf install dialog

7.2.1.dialog软件包部件

dialog命令使用命令行选项来决定生成的窗口部件.(widget)部件是代表某类窗口元素的术语。

dialog软件包目前支持的部件类型:

widget描述
calendar提供可选择日期的日历
checklist显示多个条目,其中每个条目都可以打开或关闭
form构建一个带有标签以及文本字段( 可以填写内容]的表单
fselect提供一个文件选择窗口来浏览选择文件
gauge显示一个进度条,指明已完成的百分比
infobox显示一条消息,但不用等待回应
inputbox显示一个文本框,以输入文本
inputmenu提供一个可编辑的菜单
menu显示一系列可供选择的菜单项
msgbox显示一条消息,要求用户点选OK按钮
pause显示一个进度条,指明暂停期间的状态
passwordbox显示一个文本框,但会隐藏输入的文本
passwordform显示一个带标签和隐藏文本字段的表单
radiolist提供一组菜单项,但只能选择其中一个
tailbox用tail命令在滚动窗口中显示文件的内容
tailboxbg跟tailbox一样,但运行在后台
textbox在滚动裔口中显示文性的内容
timebox提供一个选择小时、分钟和秒数的窗口
yesno提供一条带有Yes按钮和No按钮的简单消息

要在命令行中指定某个特定部件,需要使用双连字符格式:

dialog --widget parameters

widget是表中的部件名,parameters定义了部件窗口的大小以及部件需要的文本。
每个dialog部件都提供了两种输出形式。

  • 使用STDERR。
  • 使用退出状态码。

dialog命令的退出状态码能显示出用户选择的按钮。可以用$?变量来确定用户选择了dialog部件中的哪个按钮。
如果选择了Yes或OK按钮,dialog命令就会返回退出状态码0。
如果选择了Cancel按钮或No按钮,dialog命令就会返回退出状态码1。
如果部件返回了数据(比如菜单选择),那么dialog命令会将数据发送给STDERR。STDERR的输出可以重定向到另一个文件或文件描述符:

dialog --inputbox "Enter your age:" 10 20 2>age.txt

msgbox部件

msgbox部件是最常见的对话框。它会在窗口中显示一条简单的消息,直到用户单击OK按钮后才消失。

dialog --msgbox _text height width_

text参数是在窗口中显示的字符串。
dialog命令会根据由 height 参数和 width 参数创建的窗口大小来自动换行。
如果想在窗口顶部放一个标题,可以用–title参数,后面跟上标题文本。
示例:

$ dialog --title Testing --msgbox "This is a test" 10 20

在这里插入图片描述

单击OK按钮或按下Enter键来关闭对话框。

yesno部件

yesno部件允许用户对窗口中显示的问题选择yes或no。
yesno部件在窗口底部生成两个按钮:一个是Yes,一个是No。
用户可以用鼠标、制表符键或者键盘方向键在这两个按钮间进行切换。按下空格键或者Enter键选择按钮。

$ dialog --title "Please answer" --yesno "Is this thing on?" 10 20
$ echo $?
1

如果选择了No按钮,那么退出状态码为1;如果选择了Yes按钮,则退出状态码为0。

在这里插入图片描述

inputbox部件

inputbox部件为用户提供了一个简单的文本框区域来输入文本字符串。
dialog命令会将文本字符串发送到STDERR。必须重定向STDERR来获取用户输入.
inputbox部件提供了两个按钮:OK和Cancel。
选择了Canel按钮,dialog命令的退出状态码为1;否则退出状态码为0.

$ dialog --inputbox "Enter your age:" 10 20 2>age.txt
$ echo $?
0
$ cat age.txt
12$

在这里插入图片描述

textbox部件

textbox部件是在窗口中显示大量信息的好方法。它会生成一个滚动窗口来显示指定文件的内容。

$ dialog --textbox /etc/passwd 15 45

可以用方向键来左右或上下滚动显示文件的内容。窗口底行会显示当前查看的文本在整个文件中所处的位置(百分比)。
textbox部件只有一个用于退出的Exit按钮。

在这里插入图片描述

menu部件

menu部件可以创建文本菜单的窗口版本。只要为每个菜单项提供选择标号和文本.
参数–menu "Sys Admin Menu"定义了菜单的标题,
后续两个参数定义菜单窗口的高和宽.
第四个参数定义一次在窗口中显示的菜单项总数。如果还有更多的菜单项,可以用方向键来滚动显示。

$ dialog --menu "Sys Admin Menu" 20 30 10 1 "Display disk space" 2 "Display users" 3 "Display memory usage" 4 "Exit" 2> test.txt

在这里插入图片描述

fselect部件

select部件在处理文件名时非常方便。不用强制用户键入文件名,可以使用fselect部件来浏览文件的位置并选择文件.

$ dialog --title "Select a file" --fselect $HOME/ 10 50 2>file.txt

–fselect后的第一个参数指定了窗口使用的起始目录位置。
fselect部件窗口由左侧的目录列表、右侧的文件列表(显示了选定目录下的所有文件)和含有当前选定的文件或目录的简单文本框组成。
可以手动在文本框中输入文件名,也可以用目录和文件列表来选定(使用空格键选定文件,将其加入文本框中)。

7.2.2.dialog选项

可以在dialog命令中定制很多不同的选项.

选项描述
–add-widget继续下一个对话框,直到按下Esc键或单击Cancel按钮
–aspect ratio指定窗口的宽高比
–backtitle title指定显示在屏幕顶部背景上的标题
–begin x y指定窗口左上角的起始位置
–cancel-label label指定Cancel按钮的替代标签
–clear用默认的对话背导色来清空屏幕内容
–colors在对话文本中最入ANSI色彩编码
–cr-wrap在对话框文本中允许使用换行符并强制折行
–create-rc file将示例配置文件的内容复制到指定文件
–defaultno将yes/no对话框的默认答案设为No
–default-item string设定复选列表,表单或菜单对话框中的默认项
–exit-label label指定Exit按钮的普代标签
–extra-button在OK按钮和Cancel按钮之间显示一个额外按钮
–extra-label label指定Extra按钮的替代标签
–help显示dialog命令的帮助信息
–help-button在OK按钮和Cancel按钮之后显示一个Help按钮
–help-label label指定Help按钮的替代标签
–help-status当选定Help按钮后,在帮助信息后写入多选列表、单选列表或表单信息
–ignore忽略dialog不能识别的选项
–input-fd fd指定STDIN之外的另一个文件描述符
–insecure在password部件中键入内容时显示星号
–item-help为多选列表、单选列表或菜单中的每个标号在屏幕底部添加一个帮助栏
–keep-window不清除屏幕上显示过的部件
–max-input size指定允许输入的最大字符串长度( 默认为2048 1
–nocancel隐藏Cancel按钮
–no-collapse不要将对话框文本中的制表符转换成空格
–no-kill将tailboxbg对话框置入后台,并禁止SIGHUP信号发往该进程
–no-label label指定No按钮的替代标签
–no-shadow不要显示对话窗口的阴影效果
–ok-label label指定OK按钮的替代标签
–output-fd fd指定STDERR之外的另一个输出文件描述符
–print-maxsize将对话窗口的最大尺寸打印到输出中
–print-size将每个对话窗口的大小打印到输出中
–print-version将dialog的版本号打印到输出中
–separate-output一次一行地输出checklist部件的结果,不使用引号
–separator string指定用于分隔部件输出的字符串
–separate-widget string指定用于分隔部件输出的字符串
–shadow在每个窗口的右下角绘制阴影
–single-quoted需要时对多选列表的输出使用单引号
–sleep sec在处理完对话窗口之后延迟指定的秒教
–stderr将输出发送到STDERR(默认行为)
–stdout将输出发送到STDOUT
–tab-correct将制表符转换成空格
–tab-len n指定一个制表符占用的空格数( 默认为8
–timeout sec指定无用户输入时,多少秒后退出并返回错误代码
–title title指定对话窗口的标题
–trim从对话框文本中删除前导空格和换行符
–visit-items修改对话窗口中制表符的停留位置,使其包括菜单项列表
–yes-label label指定Yes按钮的替代标签

7.2.3.脚本中使用dialog

在脚本中使用dialog命令时

  • 如果有Cancel或No按钮,请检查dialog命令的退出状态码
  • 重定向STDERR来获取输出值

使用dialog部件来生成我们之前创建过的系统管理菜单:

$ cat dialogmenu
temp=$(mktemp -t test.XXXXXX)
temp2=$(mktemp -t test2.XXXXXX)
function diskspace {df -k > $tempdialog --textbox $temp 20 60
}
function whoseon {who > $tempdialog --textbox $temp 20 50
}
function memusage {cat /proc/meminfo > $tempdialog --textbox $temp 20 50
}
while [ 1 ]
do
dialog --menu "Sys Admin Menu" 20 30 10 1 "Display disk space" 2 "Display users" 3 "Display memory usage" 0 "Exit" 2> $temp2
if [ $? -eq 1 ]
thenbreak
fi
selection=$(cat $temp2)
case $selection in
1)diskspace ;;
2)whoseon ;;
3)memusage ;;
0)break ;;
*)
dialog --msgbox "Sorry, invalid selection" 10 30
esac
done
rm -f $temp 2> /dev/null
rm -f $temp2 2> /dev/null

7.3.图形化窗口部件

KDE桌面环境和GNOME桌面环境都扩展了dialog命令的思路,提供了可以在各自环境中生成X Window图形化部件的命令。

7.3.1.KDE环境

KDE图形化环境默认提供了kdialog软件包。
使用kdialog命令在KDE桌面上生成类似于dialog式部件的标准窗口。可以直接在shell脚本中创建能够和Windows相媲美的用户界面。

kdialog部件

kdialog命令格式:

kdialog display-options window-options arguments
部件描述
–checklist {title ftag item status]带有状态:的多选列表菜单,可以表明选项是否被选定
–error text错误消息框
–inputbox text [init]输入文本框,可以用init来指定默认值
–menu title [tag item]带有标题的菜单选择框以及用标号标识的选项列表
–msgbox text显示指定文本的简单消息框
–password text隐藏用户输入的密码文本框
–radiolist title [tag item status]带有状态的单选列表菜单,可以表明选项是否被选定
–separate-output为多选列表和单选列表菜单返回按行分开的列表项
–sorry text”对不起”消息框
–textbox fle [width] [height]显示文件内容的文本框,可以指定width和height
–title title为对话窗口的标题栏区域指定一个标题
–warningyesno text含有Yes按钮和No按钮的警告消息框
–warningcontinuecancel text含有Continue按钮和Cancel按钮的警告消息框
–warningyesnocancel text含有Yes按钮、No按钮和Cancel按钮的警告消息框
–yesno text含有Yes按钮和No按钮的提问框
–yesnocancel text含有Yes按钮、No按钮和Cancel按钮的提问框

checklist和radiolist部件允许在列表中定义单独的选项以及它们是否默认选定。

$kdialog --checklist "Items I need" 1 "Toothbrush" on 2 "Toothpaste" off 3 "Hairbrush" on 4 "Deodorant" off 5 "Slippers" off

指定为“on”的列表项会在多选列表中高亮显示。
要选择或取消选择某个列表项,单击即可。
如果选择了OK按钮,那么kdialog会将所选列表项的标号发送到STDOUT:

"1" "3"

当单击OK按钮或Cancel按钮时,kdialog命令会将每个标号作为一个字符串值返回到STDOUT。
脚本必须能解析结果值并将它们和原始值匹配起来。

使用kdialog

在shell脚本中使用kdialog窗口部件,方法类似于dialog部件。
最大的不同在于kdialog窗口部件用STDOUT而不是STDERR来输出值。
将之前的dialog menu改为KDE应用:

#!/bin/bash
temp=$(mktemp -t temp.XXXXXX)
temp2=$(mktemp -t temp2.XXXXXX)
function diskspace {df -k > $tempkdialog --textbox $temp 1000 10
}
function whoseon {who > $tempkdialog --textbox $temp 500 10
}
function memusage {cat /proc/meminfo > $tempkdialog --textbox $temp 300 500
}
while [ 1 ]
do
dialog --menu "Sys Admin Menu" "1" "Display disk space" "2" "Display users" "3" "Display memory usage" "0" "Exit" > $temp2
if [ $? -eq 1 ]
thenbreak
fiselection=$(cat $temp2)case $selection in
1)diskspace ;;
2)whoseon ;;
3)memusage ;;
0)break ;;
*)kdialog --msgbox "Sorry, invalid selection"
esac
done

7.3.2.GNOME环境

GNOME图形化环境支持两种流行的可生成标准窗口的软件包。

  • gdialog
  • zenity

zenity是大多数GNOME桌面Linux发行版中最常见的软件包(在Ubuntu和CentOS中默认安装).

zenity部件

部件描述
–calendar显示整月日历
–entry显示文本输入对话窗口
–error显示错误消息对话窗口
–file-selection显示完整的路径和文件名对话窗口
–info显示信息对话窗口
–list显示多选列表或单选列表对话窗口
–notification显示通知图标
–progress显示进度条对话窗口
–question显示yes/no对话窗口
–scale显示一人带有滑动条的比例尺对话裔口,可以选择一定范围内的数值
–text-info显示含有文本的文本框
–warning显示警告对话窗口

–calendar选项会产生一个整月日历,并会将选择的日期的值发送到STDOUT.

$ zenity --calendar
08/08/2023

–file-selection文件选择对话框,可以浏览系统中的任意目录并选择其中的文件。当选定文件时,会返回该文件的完整路径.

使用zenity

将系统管理菜单从kdialog迁移到zenity

#!/bin/bash
temp=$(mktemp -t temp.XXXXXX)
temp2=$(mktemp -t temp2.XXXXXX)function diskspace {df -k > $tempzenity --text-info --title "Disk space" --filename=$temp --width 1000 --height 1000
}function whoseon {who > $tempzenity --text-info --title "Logged in users" --filename=$temp --width 1000 --height 1000
}function memusage {cat /proc/meminfo > $tempzenity --text-info --title "Memory usage" --filename=$temp --width 1000 --height 1000
}while [ 1 ]
do
zenity --list --radiolist --title "Sys Admin Menu" --column "Select" --column "Menu Item" FALSE "Display disk space" FALSE "Display users" FALSE "Display memory usage" FALSE "Exit" > $temp2
if [ $? -eq 1 ]
thenbreak
fiselection=$(cat $temp2)
case $selection in
"Display disk space")diskspace ;;
"Display users")whoseon ;;
"Display memory usage")memusage ;;
Exit)break ;;
*)zenity --info "Sorry, invalid selection"
esac
done

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/28484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wpf 项目中使用 Prism + MaterialDesign

1.通过nuget安装MaterialDesign 2.通过nuget安装Prism 3.修改App.xmal <prism:PrismApplication x:Class"VisionMeasureGlue.App"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/…

66 # form 数据格式化

实现一个 http 服务器 客户端会发送请求 GET POST 要处理不同的请求体的类型 表单格式&#xff08;formData a1&b2&#xff09;&#xff0c;可以直接通信不会出现跨域问题JSON &#xff08;"{"kaimo":"313"}"&#xff09;文件格式 &#x…

Android 项目导入高德SDK初次上手

文章目录 一、前置知识&#xff1a;二、学习目标三、学习资料四、操作过程1、创建空项目2、高德 SDK 环境接入2.1 获取高德 key2.2下载 SDK 并导入2.2.1、下载SDK 文件2.2.2、SDK 导入项目2.2.3、清单文件配置2.2.4、隐私权限 3、显示地图 一、前置知识&#xff1a; 1、Java 基…

移动端自动化测试实战

UI自动化测试的价值 1、提升回归测试的效率 2、可以进行兼容性测试 UI 自动化测试应用场景 • 冒烟测试自动化&#xff1a;提测之前自动断言提测质量&#xff0c;提供准入参考。 • 功能测试自动化&#xff1a;辅助 QA 与测试工程师的快速验证。 • 验收测试自动化&#xf…

stable-diffusion-webui 界面汉化

本教程通过安装 sd-webui-bilingual-localization 插件来达到汉化目的, 项目地址为:https://github.com/journey-ad/sd-webui-bilingual-localization 一、安装插件 先进入插件安装界面 在搜索栏搜索 zh_CN Localization 中文语言包, 项目地址: https://github.com/dtlnor/st…

CrossOver是什么软件 CrossOver软件好用吗

CrossOver是一款由CodeWeavers公司开发的软件&#xff0c;它可以在Mac和Linux等操作系统上运行Windows软件&#xff0c;而无需在计算机上安装Windows操作系统。这款软件的核心技术是Wine&#xff0c;它是一种在Linux和macOS等操作系统上运行Windows应用程序的开源软件。本文将会…

使用docker 搭建nginx + tomcat 集群

创建3个Tomcat容器&#xff0c;端口分别映射到 8080,8081,8082&#xff0c;使用数据卷挂载&#xff0c;分别将宿主机目录下的 /opt/module/docker/tomcat3/ROOT1/&#xff0c;/opt/module/docker/tomcat3/ROOT2/&#xff0c;/opt/module/docker/tomcat3/ROOT2/ 挂载到 容器内部…

CAD练习——绘制冲压件三视图

首先还是先设置咱们的绘图模板&#xff1a; 这是图层划分&#xff1a; 文字样式设置&#xff1a; 标注样式&#xff1a; 从主视图开始&#xff0c;首先绘制如下图形 用到的快捷指令&#xff1a; L&#xff1a;直线 O&#xff1a;偏移 TR&#xff1a;修剪 效果&#xff1a;…

搭建日志服务器Rsyslog

Rsyslog介绍 Rsyslog的全称是 rocket-fast system for log&#xff0c;它提供了高性能&#xff0c;高安全功能和模块化设计。rsyslog能够接受从各种各样的来源&#xff0c;将其输入&#xff0c;输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。 特…

SQL Server数据库如何添加Oracle链接服务器(Windows系统)

SQL Server数据库如何添加Oracle链接服务器 一、在添加访问Oracle的组件1.1 下载Oracle的组件 Oracle Provider for OLE DB1.2 注册该组件1.2.1 下载的压缩包解压位置1.2.2 接着用管理员运行Cmd 此处一定要用管理员运行&#xff0c;否则会报错 二、配置环境变量三、 重启SQL Se…

使用Spring五大注解来更加简单的存储Bean对象

在使用Spring框架的时候我们如果使用这种方式来存储bean对象的话未免有点太麻烦了 <bean id"xxx" class"xxx"> </bean> 为了简化存储Bean对象的操作&#xff0c;我们可以使用五大类注解来进行存储Bean对象 我们首先要在配置文件配置扫描路径…

【快应用】list组件属性的运用指导

【关键词】 list、瀑布流、刷新、页面布局 【问题背景】 1、 页面部分内容需要瀑布流格式展示&#xff0c;在使用lsit列表组件设置columns进行多列渲染时&#xff0c;此时在里面加入刷新动画时&#xff0c;动画只占了list组件的一列&#xff0c;并没有完全占据一行宽度&…

把大模型装进手机,分几步?

点击关注 文 | 姚 悦 编 | 王一粟 大模型“跑”进手机&#xff0c;AI的战火已经从“云端”烧至“移动终端”。 “进入AI时代&#xff0c;华为盘古大模型将会来助力鸿蒙生态。”8月4日&#xff0c;华为常务董事、终端BG CEO、智能汽车解决方案BU CEO 余承东介绍&#xff0c…

Gson 添加数据默认值问题记录

问题&#xff1a;在用Gson add(key&#xff08;string类型&#xff09;&#xff0c;value&#xff08;必须是JsonElement子类&#xff09;&#xff09;时发现&#xff0c;value 传了 "" 空字符串&#xff08;非null&#xff09;&#xff0c;默认解析后返回null&#…

jmeter测试rpc接口-使用dubbo框架调用【杭州多测师_王sir】

1.基于SOAP架构。基于XML规范。基于WebService协议。特点:接口地址?wsdl结尾2.基于RPC架构&#xff0c;基于dubbo协议&#xff0c;thrift协议。SpringCloud微服务。3.基于RestFul架构&#xff0c;基于json规范。基于http协议(我们常用的都是这种&#xff0c;cms平台也是) Rest…

windows环境下安装elasticsearch、kibana

通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候&#xff0c;要非常小心&#xff0c;因为100等于100、但是200不等于200&#xff0c;当然&#xff0c;如果你会一点小花招&#xff0c;也可以让100不等于100、让200等于200。(运算符比较…

CSS 盒模型是什么?它包含哪些属性?标准盒模型/怪异盒模型

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 盒模型⭐ 标准盒模型⭐ 怪异盒模型⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感…

深度学习中的优化算法

文章目录 前言一、优化和深度学习1.1 优化的目标1.2 深度学习中的优化挑战1.2.1 局部最小值1.2.2 鞍点1.2.3 梯度消失 二、梯度下降2.1 一维梯度下降2.1.1 学习率 2.2 多元梯度下降2.3 自适应方法2.3.1 牛顿法2.3.2 其他自适应方法 三、随机梯度下降3.1 随机梯度更新3.2 动态学…

Go-Gin框架

一、Gin介绍 Gin是一个用Go编写的HTTPweb框架。它是一个类似于martini但拥有更好性能的API框架, 优于httprouter&#xff0c;速度提高了近 40 倍。 点击此处访问Gin官方中文文档。 二、安装 1、安装Gin go get -u github.com/gin-gonic/gin 2、代码中引入 import "g…

安路FPGA的赋值报错——移位处理,加括号

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 在使用移位符号用来当作除以号使用时&#xff0c;发现如下问题 其中 cnt_8K 为偶数和奇数时输出的数据不一样 reg [10:0] cnt_8K; reg [10:0] ram1_addra; always(posedge clk_16M) begin if(ram_out_flag )begin if(…