LINUX88 变量:命令定义;普通数组定义(复);declare -i /-x

问题

[code@samba ~]$ array3=(`ls axel-2.4`)
[code@samba ~]$ echo $array3
API
[code@samba ~]$ ls axel-2.4
API             CHANGES    conn.o   gui                README    tcp.o
axel            conf.c     COPYING  http.c             ru.mo     text.c
axel.1          conf.h     CREDITS  http.h             ru.po     text.o
axel.c          config.h   de.mo    http.o             search.c  zh_CN.mo
axel.h          configure  de.po    Makefile           search.h  zh_CN.po
axel.o          conf.o     ftp.c    Makefile.settings  search.o
axelrc.example  conn.c     ftp.h    nl.mo              tcp.c
axel_zh_CN.1    conn.h     ftp.o    nl.po              tcp.h

在这里插入图片描述

[code@samba ~]$ echo $array3
API
[code@samba ~]$ ls axel-2.4
API             CHANGES    conn.o   gui                README    tcp.o
axel            conf.c     COPYING  http.c             ru.mo     text.c
axel.1          conf.h     CREDITS  http.h             ru.po     text.o
axel.c          config.h   de.mo    http.o             search.c  zh_CN.mo
axel.h          configure  de.po    Makefile           search.h  zh_CN.po
axel.o          conf.o     ftp.c    Makefile.settings  search.o
axelrc.example  conn.c     ftp.h    nl.mo              tcp.c
axel_zh_CN.1    conn.h     ftp.o    nl.po              tcp.h
[code@samba ~]$ echo $array3[@]
API[@]
[code@samba ~]$ echo "${array3[@]}"
API axel axel.1 axel.c axel.h axel.o axelrc.example axel_zh_CN.1 CHANGES conf.c conf.h config.h configure conf.o conn.c conn.h conn.o COPYING CREDITS de.mo de.po ftp.c ftp.h ftp.o gui http.c http.h http.o Makefile Makefile.settings nl.mo nl.po README ru.mo ru.po search.c search.h search.o tcp.c tcp.h tcp.o text.c text.o zh_CN.mo zh_CN.po

() {} []

变量

有类型变量

declare [选项] a=1

[选项] -i

declare -i a=1
变量整数

[code@samba ~]$ echo $name
3.10.0-1160.el7.x86_64
[code@samba ~]$ a=10
[code@samba ~]$ b=20
[code@samba ~]$ echo $a+$b
10+20
[code@samba ~]$ declare -i a=10
[code@samba ~]$ declare -i b=20
[code@samba ~]$ declare -i c=$a+$b
[code@samba ~]$ echo $c
30

-x

定义环境变量
declare -x b=1
env |grep b

[code@samba ~]$ AAA=hello
[code@samba ~]$ export AAA
[code@samba ~]$ env|grep AAA
AAA=hello
[code@samba ~]$ declare -x BBB=hello
[code@samba ~]$ env|grep BBB
BBB=hello

数组

定义

array[0]=a
a=array3[a,bm,c,s,s]
a=arrayd{ls ./}
a=array4[var1 var3 var4 var5]

array3=(a,bn,s,cs)
array4=( ls ./ )
array5=(var1 var3 var4)
array6=(a v s d [10]=linux)

[code@samba ~]$ array[0]=v1
[code@samba ~]$ array[1]=v2
[code@samba ~]$ array[3]=v3
[code@samba ~]$ array=(var1 var2 var3 var4)
[code@samba ~]$ array1=(`cat /etc/passwd`)
[code@samba ~]$ echo $array1
root:x:0:0:root:/root:/bin/bash
[code@samba ~]$ array2=(`ls /root`)
ls: 无法打开目录/root: 权限不够
[code@samba ~]$ ls
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
axel-2.4                inotify-tools-3.13    模板                       音乐
[code@samba ~]$ mkdir 1
[code@samba ~]$ ls
1                       axel-2.4              inotify-tools-3.13         模板  音乐
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
[code@samba ~]$ array2=(`ls /1`)
ls: 无法访问/1: 没有那个文件或目录
[code@samba ~]$ array2=(`ls 1`)
[code@samba ~]$ echo $array2[code@samba ~]$ array3=(`ls axel-2.4`)
[code@samba ~]$ echo $array3
API

读取

全部元素

echo ${array3[@]}
echo ${array4[*]}

数组索引

echo ${!array5[@]}

指定索引下标

echo ${array6[2]}
echo ${array[5]:2:3}
读取array5从2开始后面3个元素

[code@samba ~]$ echo "${array3[@]}"
API axel axel.1 axel.c axel.h axel.o axelrc.example axel_zh_CN.1 CHANGES conf.c conf.h config.h configure conf.o conn.c conn.h conn.o COPYING CREDITS de.mo de.po ftp.c ftp.h ftp.o gui http.c http.h http.o Makefile Makefile.settings nl.mo nl.po README ru.mo ru.po search.c search.h search.o tcp.c tcp.h tcp.o text.c text.o zh_CN.mo zh_CN.po
[code@samba ~]$ array3=(harry a j "1")
[code@samba ~]$ array4=(1 2 3 4 "hello world" [10]=linux)
[code@samba ~]$ echo ${array4[0]}
1
[code@samba ~]$ echo ${array4[@]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${array4[#]}
-bash: #: 语法错误: 期待操作数 (错误符号是 "#")
[code@samba ~]$ echo ${array4[*]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array3[@]}
0 1 2 3
[code@samba ~]$ echo ${array4[@]:1:2}
2 3
[code@samba ~]$ echo ${array3[@:3:3]}
-bash: @:3:3: 语法错误: 期待操作数 (错误符号是 "@:3:3"[code@samba ~]$ echo ${array3[@]:3:3}
1
[code@samba ~]$ echo ${array3[@]}
harry a j 1
[code@samba ~]$ echo ${array3[@]:1:2}
a j

declare -a

查看普通数组信息

[code@samba ~]$ declare -a
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='()'
declare -a BASH_SOURCE='()'
declare -ar BASH_VERSINFO='([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='()'
declare -a GROUPS='()'
declare -a PIPESTATUS='([0]="0")'
declare -a array='([0]="var1" [1]="var2" [2]="var3" [3]="var4")'
declare -a array1='([0]="root:x:0:0:root:/root:/bin/bash" [1]="bin:x:1:1:bin:/bin:/sbin/nologin" [2]="daemon:x:2:2:daemon:/sbin:/sbin/nologin" [3]="adm:x:3:4:adm:/var/adm:/sbin/nologin" [4]="lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin" [5]="sync:x:5:0:sync:/sbin:/bin/sync" [6]="shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown" [7]="halt:x:7:0:halt:/sbin:/sbin/halt" [8]="mail:x:8:12:mail:/var/spool/mail:/sbin/nologin" [9]="operator:x:11:0:operator:/root:/sbin/nologin" [10]="games:x:12:100:games:/usr/games:/sbin/nologin" [11]="ftp:x:14:50:FTP" [12]="User:/var/ftp:/sbin/nologin" [13]="nobody:x:99:99:Nobody:/:/sbin/nologin" [14]="systemd-network:x:192:192:systemd" [15]="Network" [16]="Management:/:/sbin/nologin" [17]="dbus:x:81:81:System" [18]="message" [19]="bus:/:/sbin/nologin" [20]="polkitd:x:999:998:User" [21]="for" [22]="polkitd:/:/sbin/nologin" [23]="libstoragemgmt:x:998:995:daemon" [24]="account" [25]="for" [26]="libstoragemgmt:/var/run/lsm:/sbin/nologin" [27]="colord:x:997:994:User" [28]="for" [29]="colord:/var/lib/colord:/sbin/nologin" [30]="rpc:x:32:32:Rpcbind" [31]="Daemon:/var/lib/rpcbind:/sbin/nologin" [32]="saned:x:996:993:SANE" [33]="scanner" [34]="daemon" [35]="user:/usr/share/sane:/sbin/nologin" [36]="gluster:x:995:992:GlusterFS" [37]="daemons:/run/gluster:/sbin/nologin" [38]="saslauth:x:994:76:Saslauthd" [39]="user:/run/saslauthd:/sbin/nologin" [40]="abrt:x:173:173::/etc/abrt:/sbin/nologin" [41]="setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin" [42]="rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin" [43]="pulse:x:171:171:PulseAudio" [44]="System" [45]="Daemon:/var/run/pulse:/sbin/nologin" [46]="radvd:x:75:75:radvd" [47]="user:/:/sbin/nologin" [48]="chrony:x:992:987::/var/lib/chrony:/sbin/nologin" [49]="unbound:x:991:986:Unbound" [50]="DNS" [51]="resolver:/etc/unbound:/sbin/nologin" [52]="qemu:x:107:107:qemu" [53]="user:/:/sbin/nologin" [54]="tss:x:59:59:Account" [55]="used" [56]="by" [57]="the" [58]="trousers" [59]="package" [60]="to" [61]="sandbox" [62]="the" [63]="tcsd" [64]="daemon:/dev/null:/sbin/nologin" [65]="sssd:x:990:984:User" [66]="for" [67]="sssd:/:/sbin/nologin" [68]="usbmuxd:x:113:113:usbmuxd" [69]="user:/:/sbin/nologin" [70]="geoclue:x:989:983:User" [71]="for" [72]="geoclue:/var/lib/geoclue:/sbin/nologin" [73]="ntp:x:38:38::/etc/ntp:/sbin/nologin" [74]="gdm:x:42:42::/var/lib/gdm:/sbin/nologin" [75]="rpcuser:x:29:29:RPC" [76]="Service" [77]="User:/var/lib/nfs:/sbin/nologin" [78]="nfsnobody:x:65534:65534:Anonymous" [79]="NFS" [80]="User:/var/lib/nfs:/sbin/nologin" [81]="gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin" [82]="sshd:x:74:74:Privilege-separated" [83]="SSH:/var/empty/sshd:/sbin/nologin" [84]="avahi:x:70:70:Avahi" [85]="mDNS/DNS-SD" [86]="Stack:/var/run/avahi-daemon:/sbin/nologin" [87]="postfix:x:89:89::/var/spool/postfix:/sbin/nologin" [88]="tcpdump:x:72:72::/:/sbin/nologin" [89]="caozx26:x:1000:1000:caozx26:/home/caozx26:/bin/bash" [90]="code:x:1001:1001::/home/code:/bin/bash" [91]="rsync:x:1002:1002::/home/rsync:/sbin/nologin" [92]="apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin" [93]="user01:x:1003:1003::/home/user01:/bin/bash" [94]="u02:x:1004:1005::/home/u02:/bin/bash" [95]="u03:x:13:48::/home/u03:/bin/bash" [96]="mysql:x:987:981::/home/mysql:/sbin/nologin")'
declare -a array2='()'
declare -a array3='([0]="harry" [1]="a" [2]="j" [3]="1")'
declare -a array4='([0]="1" [1]="2" [2]="3" [3]="4" [4]="hello world" [10]="linux")'

命令

a=ls ./


a=$[ ]

a=$()

[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernal[code@samba ~]$ uname -r
3.10.0-1160.el7.x86_64
[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernel
3.10.0-1160.el7.x86_64
[code@samba ~]$ name=$(uname -r)
[code@samba ~]$ echo $name
3.10.0-1160.el7.x86_64

笔记

    ┌──────────────────────────────────────────────────────────────────────┐│                 • MobaXterm Personal Edition v23.2 •                 ││               (SSH client, X server and network tools)               ││                                                                      ││ ⮞ SSH session to code@192.168.235.10                                 ││   • Direct SSH      :  ✓                                             ││   • SSH compression :  ✓                                             ││   • SSH-browser     :  ✓                                             ││   • X11-forwarding  :(remote display is forwarded through SSH)  ││                                                                      ││ ⮞ For more info, ctrl+click on help or visit our website.            │└──────────────────────────────────────────────────────────────────────┘Last login: Sun Aug  3 15:31:49 2025 from 192.168.235.1
[code@samba ~]$ hostname
samba.web.cn
[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernal[code@samba ~]$ uname -r
3.10.0-1160.el7.x86_64
[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernel
3.10.0-1160.el7.x86_64
[code@samba ~]$ name=$(uname -r)
[code@samba ~]$ echo $name
3.10.0-1160.el7.x86_64
[code@samba ~]$ a=10
[code@samba ~]$ b=20
[code@samba ~]$ echo $a+$b
10+20
[code@samba ~]$ declare -i a=10
[code@samba ~]$ declare -i b=20
[code@samba ~]$ declare -i c=$a+$b
[code@samba ~]$ echo $c
30
[code@samba ~]$ AAA=hello
[code@samba ~]$ export AAA
[code@samba ~]$ env|grep AAA
AAA=hello
[code@samba ~]$ declare -x BBB=hello
[code@samba ~]$ env|grep BBB
BBB=hello
[code@samba ~]$ array[0]=v1
[code@samba ~]$ array[1]=v2
[code@samba ~]$ array[3]=v3
[code@samba ~]$ array=(var1 var2 var3 var4)
[code@samba ~]$ array1=(`cat /etc/passwd`)
[code@samba ~]$ echo $array1
root:x:0:0:root:/root:/bin/bash
[code@samba ~]$ array2=(`ls /root`)
ls: 无法打开目录/root: 权限不够
[code@samba ~]$ ls
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
axel-2.4                inotify-tools-3.13    模板                       音乐
[code@samba ~]$ mkdir 1
[code@samba ~]$ ls
1                       axel-2.4              inotify-tools-3.13         模板  音乐
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
[code@samba ~]$ array2=(`ls /1`)
ls: 无法访问/1: 没有那个文件或目录
[code@samba ~]$ array2=(`ls 1`)
[code@samba ~]$ echo $array2[code@samba ~]$ array3=(`ls axel-2.4`)
[code@samba ~]$ echo $array3
API
[code@samba ~]$ ls axel-2.4
API             CHANGES    conn.o   gui                README    tcp.o
axel            conf.c     COPYING  http.c             ru.mo     text.c
axel.1          conf.h     CREDITS  http.h             ru.po     text.o
axel.c          config.h   de.mo    http.o             search.c  zh_CN.mo
axel.h          configure  de.po    Makefile           search.h  zh_CN.po
axel.o          conf.o     ftp.c    Makefile.settings  search.o
axelrc.example  conn.c     ftp.h    nl.mo              tcp.c
axel_zh_CN.1    conn.h     ftp.o    nl.po              tcp.h
[code@samba ~]$ echo $array3[@]
API[@]
[code@samba ~]$ echo "${array3[@]}"
API axel axel.1 axel.c axel.h axel.o axelrc.example axel_zh_CN.1 CHANGES conf.c conf.h config.h configure conf.o conn.c conn.h conn.o COPYING CREDITS de.mo de.po ftp.c ftp.h ftp.o gui http.c http.h http.o Makefile Makefile.settings nl.mo nl.po README ru.mo ru.po search.c search.h search.o tcp.c tcp.h tcp.o text.c text.o zh_CN.mo zh_CN.po
[code@samba ~]$ array3=(harry a j "1")
[code@samba ~]$ array4=(1 2 3 4 "hello world" [10]=linux)
[code@samba ~]$ echo ${array4[0]}
1
[code@samba ~]$ echo ${array4[@]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${array4[#]}
-bash: #: 语法错误: 期待操作数 (错误符号是 "#")
[code@samba ~]$ echo ${array4[*]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array3[@]}
0 1 2 3
[code@samba ~]$ echo ${array4[@]:1:2}
2 3
[code@samba ~]$ echo ${array3[@:3:3]}
-bash: @:3:3: 语法错误: 期待操作数 (错误符号是 "@:3:3"[code@samba ~]$ echo ${array3[@]:3:3}
1
[code@samba ~]$ echo ${array3[@]}
harry a j 1
[code@samba ~]$ echo ${array3[@]:1:2}
a j
[code@samba ~]$ declare -a
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='()'
declare -a BASH_SOURCE='()'
declare -ar BASH_VERSINFO='([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='()'
declare -a GROUPS='()'
declare -a PIPESTATUS='([0]="0")'
declare -a array='([0]="var1" [1]="var2" [2]="var3" [3]="var4")'
declare -a array1='([0]="root:x:0:0:root:/root:/bin/bash" [1]="bin:x:1:1:bin:/bin:/sbin/nologin" [2]="daemon:x:2:2:daemon:/sbin:/sbin/nologin" [3]="adm:x:3:4:adm:/var/adm:/sbin/nologin" [4]="lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin" [5]="sync:x:5:0:sync:/sbin:/bin/sync" [6]="shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown" [7]="halt:x:7:0:halt:/sbin:/sbin/halt" [8]="mail:x:8:12:mail:/var/spool/mail:/sbin/nologin" [9]="operator:x:11:0:operator:/root:/sbin/nologin" [10]="games:x:12:100:games:/usr/games:/sbin/nologin" [11]="ftp:x:14:50:FTP" [12]="User:/var/ftp:/sbin/nologin" [13]="nobody:x:99:99:Nobody:/:/sbin/nologin" [14]="systemd-network:x:192:192:systemd" [15]="Network" [16]="Management:/:/sbin/nologin" [17]="dbus:x:81:81:System" [18]="message" [19]="bus:/:/sbin/nologin" [20]="polkitd:x:999:998:User" [21]="for" [22]="polkitd:/:/sbin/nologin" [23]="libstoragemgmt:x:998:995:daemon" [24]="account" [25]="for" [26]="libstoragemgmt:/var/run/lsm:/sbin/nologin" [27]="colord:x:997:994:User" [28]="for" [29]="colord:/var/lib/colord:/sbin/nologin" [30]="rpc:x:32:32:Rpcbind" [31]="Daemon:/var/lib/rpcbind:/sbin/nologin" [32]="saned:x:996:993:SANE" [33]="scanner" [34]="daemon" [35]="user:/usr/share/sane:/sbin/nologin" [36]="gluster:x:995:992:GlusterFS" [37]="daemons:/run/gluster:/sbin/nologin" [38]="saslauth:x:994:76:Saslauthd" [39]="user:/run/saslauthd:/sbin/nologin" [40]="abrt:x:173:173::/etc/abrt:/sbin/nologin" [41]="setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin" [42]="rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin" [43]="pulse:x:171:171:PulseAudio" [44]="System" [45]="Daemon:/var/run/pulse:/sbin/nologin" [46]="radvd:x:75:75:radvd" [47]="user:/:/sbin/nologin" [48]="chrony:x:992:987::/var/lib/chrony:/sbin/nologin" [49]="unbound:x:991:986:Unbound" [50]="DNS" [51]="resolver:/etc/unbound:/sbin/nologin" [52]="qemu:x:107:107:qemu" [53]="user:/:/sbin/nologin" [54]="tss:x:59:59:Account" [55]="used" [56]="by" [57]="the" [58]="trousers" [59]="package" [60]="to" [61]="sandbox" [62]="the" [63]="tcsd" [64]="daemon:/dev/null:/sbin/nologin" [65]="sssd:x:990:984:User" [66]="for" [67]="sssd:/:/sbin/nologin" [68]="usbmuxd:x:113:113:usbmuxd" [69]="user:/:/sbin/nologin" [70]="geoclue:x:989:983:User" [71]="for" [72]="geoclue:/var/lib/geoclue:/sbin/nologin" [73]="ntp:x:38:38::/etc/ntp:/sbin/nologin" [74]="gdm:x:42:42::/var/lib/gdm:/sbin/nologin" [75]="rpcuser:x:29:29:RPC" [76]="Service" [77]="User:/var/lib/nfs:/sbin/nologin" [78]="nfsnobody:x:65534:65534:Anonymous" [79]="NFS" [80]="User:/var/lib/nfs:/sbin/nologin" [81]="gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin" [82]="sshd:x:74:74:Privilege-separated" [83]="SSH:/var/empty/sshd:/sbin/nologin" [84]="avahi:x:70:70:Avahi" [85]="mDNS/DNS-SD" [86]="Stack:/var/run/avahi-daemon:/sbin/nologin" [87]="postfix:x:89:89::/var/spool/postfix:/sbin/nologin" [88]="tcpdump:x:72:72::/:/sbin/nologin" [89]="caozx26:x:1000:1000:caozx26:/home/caozx26:/bin/bash" [90]="code:x:1001:1001::/home/code:/bin/bash" [91]="rsync:x:1002:1002::/home/rsync:/sbin/nologin" [92]="apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin" [93]="user01:x:1003:1003::/home/user01:/bin/bash" [94]="u02:x:1004:1005::/home/u02:/bin/bash" [95]="u03:x:13:48::/home/u03:/bin/bash" [96]="mysql:x:987:981::/home/mysql:/sbin/nologin")'
declare -a array2='()'
declare -a array3='([0]="harry" [1]="a" [2]="j" [3]="1")'
declare -a array4='([0]="1" [1]="2" [2]="3" [3]="4" [4]="hello world" [10]="linux")'
[code@samba ~]$ declare -i d=2
[code@samba ~]$ echo $d
2
[code@samba ~]$ echo ${!array3[@]}
0 1 2 3
[code@samba ~]$ echo ${array}

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

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

相关文章

数字IC后端PPA优化| Timing一致性调整方法和Module Region规划方法

Q1:直播课经常讲到一致性,这个一致性的话一般是指place,CTS和PT的derating time,uncertainty和transition吗,我大概知道innovus的uncertainty设置要比PT里面高一点,但具体设计时这几部分的大小应该是一个什么样的关系或…

电子电气架构 --- 软件定义汽车的驱动和挑战

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

机器学习——10 支持向量机SVM

1 支持向量机 1.1 故事引入看下图左边,蓝色和红色的点混在一起,这就像一堆数据,没办法用一条简单的直线把它们分开。再看下图右边,有一条直线把蓝色和红色的点分开,这就是SVM在找的“决策边界”,它能把不同…

若以微服务部署踩坑点

windows docker desktop 部署nacos mysql1、docker部署nacosdocker pull nacos/nacos-server:v2.4.3docker启动命令 docker run --name nacos -d -p 8848:8848 -p 9848:9848 -p 9849:9849 --privilegedtrue --network bridge -e MODEstandalone -e SPRING_DATASOURCE_PLATFORMm…

Lua基础+Lua数据类型

Lua基础 Lua介绍 特点:轻量、小巧。C语言开发。开源。 设计的目的:嵌入到应用程序当中,提供灵活的扩展和定制化的功能。 luanginx,luaredis。 环境安装 windows上安装lua: 检查机器上是否有lua C:\Users\cpf>lua lu…

基于VuePress2开发文档自部署及嵌入VUE项目

最近在搞前端开发帮助文档,转了一圈发现Vue提供了一个高性能的、Vue驱动的静态网站生成框架-VuePress。VuePress 是一个以 Markdown 为中心的静态网站生成器。你可以使用 Markdown 来书写内容(如文档、博客等),然后 VuePress 会生…

Flask初步学习

文章目录一、初识Flask1.1 Pycharm修改环境配置1.2 运行第一个flask项目1.3 获取数据请求1.3.1 动态路由参数一、初识Flask 1.1 Pycharm修改环境配置 file——settings——project——python Interpreter——add interpreter——add local interpreter 1.2 运行第一个fla…

word的正则替换

word查看选中了几行 word替换掉空行 替换空行 按下 “Ctrl H” 组合键打开 “查找和替换” 对话框,在 “查找内容” 框中输入 “pp”,“^p” 代表段落标记,两个 “^p” 表示连续的两个段落标记,即空行。在 “替换为” 框中输入 “…

Spring Framework源码解析——DisposableBean

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl一、概述 DisposableBean 是 Spring 框架中用于定义 Bean 销毁时回调行为的核心接口之一。它提供了一个标准化的钩子方法 destroy(),允许 Bean 在容器关闭或作用域…

linux安装和使用git

Linux 上安装 Git 在 Linux 上安装 Git,你可以按照以下步骤进行: 打开终端:打开你的 Linux 终端应用程序。通常可以通过在应用程序菜单中搜索 "Terminal" 或 "终端" 来找到它。 更新软件包列表:运行以下命令…

数字图像处理4

预处理——ROI——形态学处理形态学处理形态学变化只能在二值图上处理1.腐蚀Erode对kernel映射的区域做与操作,包括自己在内如果有0则中间赋值成02.膨胀Dilate对kernel映射的区域做或操作,包括自己在内如果有1则中间赋值成13.其他操作开操作:…

Solon v3.4.3 发布(国产 Java 应用开发生态基座)

Solon 框架! Solon 是新一代,Java 企业级应用开发框架。从零开始构建(No Java-EE),有灵活的接口规范与开放生态。采用商用友好的 Apache 2.0 开源协议,是“杭州无耳科技有限公司”开源的根级项目&#xff…

Spring-Security-5.7.11升级6.5.2

1.Session Management 1.1.必须明确调用SecurityContextRepository保存SecurityContext 在Spring Security 5中,默认行为是SecurityContext使用SecurityContextPersistenceFilter自动保存到SecurityContextRepository。 //版本5.7.11 //SecurityContextPersisten…

docker下载安装和使用(Hyper-V方式)

1.环境准备 左键单击电脑左下角开始按钮—>点击“设置”—>搜索“Windows功能”—>启用或关闭Windows功能—>勾选Hyper-v,启用后电脑会重启,安装环境配置成功。 选择 Hyper-v2.下载docker docker官网下载地址:https://www.docker…

【消息队列】RabbitMQ “消息队列模式” 以及NET8集成

在 .NET 8 中集成 RabbitMQ 消息队列,可以使用官方推荐的 RabbitMQ.Client 库或封装好的 MassTransit/EasyNetQ 等高级库。以下是 RabbitMQ 的基本集成代码 和 常见消息模式 的实现。 RabbitMQ 本身并没有直接支持延时消息的功能,但是可以通过一些机制来…

Docker 镜像常见标签(如 `标准`、`slim`、`alpine` 和 `noble`)详细对比

以下是 Docker 镜像常见标签(如 标准、slim、alpine 和 noble)的详细对比,涵盖基础系统、体积、适用场景及注意事项:1. 标准镜像(无后缀) 基础系统:完整 Linux 发行版(如 Debian、Ub…

(1-9-2)Java 工厂模式

目录 1.设计模式与分类 2. 工厂模式 2.1 工厂模式概述 2.2 简单工厂 2.3 学生推荐就业Demo 00.项目目录 01. 创建抽象接口Job 02. 创建实体类 03. 创建推荐工作工厂类 04. 创建学生推荐就业客户类 3. i18n国际化语言标题自适应 00. 实现效果 01. 创建抽象接口 02…

QT远程开发技巧

交叉编译时野火提供的文件 交叉编译器 GNU官网可以下载, QT库文件这里给的QT-everyWhere版本,是开源版本需要自行编译。(远程服务器通常是PC架构【AMD64】,直接apt-get install下载的qt也是Pc架构的,不能直接在板卡【ARM64】上运行,必须对源码交叉编译) 注意QT遵从GPL开源…

Linux操作系统从入门到实战(十九)进程状态

Linux操作系统从入门到实战(十九)进程状态前言一、什么是进程状态二、状态本质三、最核心的3种状态1. 就绪状态2. 运行状态3. 阻塞状态四、状态变化的核心1/两种资源如何影响状态?五、操作系统怎么管理这些状态?六、Linux里结构体…

容器技术之docker

容器技术之Docker一、什么是Docker二、为什么会出现Docker2.1 环境一致性问题2.2 虚拟化技术的局限性2.3 微服务架构的兴起三、重要概念3.1 什么是镜像3.2 什么是容器3.3 总结:3.4 Docker仓库四、安装Docker(Ubuntu系统下)1.卸载老的版本2.更…