欢迎光临
我们一直在努力

Shell 变量3535

Shell 变量

在 Shell 编程中,变量是用于存储数据值的名称。

定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:

your_name="runoob"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 只包含字母、数字和下划线: 变量名可以包含字母(大小写敏感)、数字和下划线 _,不能包含其他特殊字符。
  • 不能以数字开头: 变量名不能以数字开头,但可以包含数字。
  • 避免使用 Shell 关键字: 不要使用Shell的关键字(例如 if、then、else、fi、for、while 等)作为变量名,以免引起混淆。
  • 使用大写字母表示常量: 习惯上,常量的变量名通常使用大写字母,例如 PI=3.14。
  • 避免使用特殊符号: 尽量避免在变量名中使用特殊符号,因为它们可能与 Shell 的语法产生冲突。
  • 避免使用空格: 变量名中不应该包含空格,因为空格通常用于分隔命令和参数。

有效的 Shell 变量名示例如下:

RUNOOB="www.runoob.com"
LD_LIBRARY_PATH="/bin/"
_var="123"
var2="abc"

无效的变量命名:

# 避免使用if作为变量名
if="some_value"
# 避免使用 $ 等特殊符号
variable_with_$=42
?var=123
user*name=runoob
# 避免空格
variable with space="value"

等号两侧避免使用空格:

https://avg.163.com/topic/detail/10901831
https://avg.163.com/topic/detail/10901830
https://avg.163.com/topic/detail/10901829
https://avg.163.com/topic/detail/10901827
https://avg.163.com/topic/detail/10901828
https://avg.163.com/topic/detail/10901822
https://avg.163.com/topic/detail/10901815
https://avg.163.com/topic/detail/10901813
https://avg.163.com/topic/detail/10901812
https://avg.163.com/topic/detail/10901810
https://avg.163.com/topic/detail/10901801
https://avg.163.com/topic/detail/10901804
https://avg.163.com/topic/detail/10901796
https://avg.163.com/topic/detail/10901795
https://avg.163.com/topic/detail/10901794
https://avg.163.com/topic/detail/10901793
https://avg.163.com/topic/detail/10901791
https://avg.163.com/topic/detail/10901792
https://avg.163.com/topic/detail/10901790
https://avg.163.com/topic/detail/10901789
https://avg.163.com/topic/detail/10901788
https://avg.163.com/topic/detail/10901787
https://avg.163.com/topic/detail/10901786
https://avg.163.com/topic/detail/10901740
https://avg.163.com/topic/detail/10901738
https://avg.163.com/topic/detail/10901735
https://avg.163.com/topic/detail/10901733
https://avg.163.com/topic/detail/10901731
https://avg.163.com/topic/detail/10901730
https://avg.163.com/topic/detail/10901729
https://avg.163.com/topic/detail/10901728
https://avg.163.com/topic/detail/10901727
https://avg.163.com/topic/detail/10901726
https://avg.163.com/topic/detail/10901718
https://avg.163.com/topic/detail/10901714
https://avg.163.com/topic/detail/10901713
https://avg.163.com/topic/detail/10901712
https://avg.163.com/topic/detail/10901711
https://avg.163.com/topic/detail/10901710
https://avg.163.com/topic/detail/10901705
https://avg.163.com/topic/detail/10901704
https://avg.163.com/topic/detail/10901700
https://avg.163.com/topic/detail/10901702
https://avg.163.com/topic/detail/10901698
https://avg.163.com/topic/detail/10901697
https://avg.163.com/topic/detail/10901695
https://avg.163.com/topic/detail/10901694
https://avg.163.com/topic/detail/10901693
https://avg.163.com/topic/detail/10901688
https://avg.163.com/topic/detail/10901682
https://avg.163.com/topic/detail/10901677
https://avg.163.com/topic/detail/10901673
https://avg.163.com/topic/detail/10901670
https://avg.163.com/topic/detail/10901671
https://avg.163.com/topic/detail/10901668
https://avg.163.com/topic/detail/10901669
https://avg.163.com/topic/detail/10901666
https://avg.163.com/topic/detail/10901662
https://avg.163.com/topic/detail/10901664
https://avg.163.com/topic/detail/10901663
https://avg.163.com/topic/detail/10901660
https://avg.163.com/topic/detail/10901657
https://avg.163.com/topic/detail/10901653
https://avg.163.com/topic/detail/10901654
https://avg.163.com/topic/detail/10901652
https://avg.163.com/topic/detail/10901651
https://avg.163.com/topic/detail/10901649
https://avg.163.com/topic/detail/10901646
https://avg.163.com/topic/detail/10901648
https://avg.163.com/topic/detail/10901642
https://avg.163.com/topic/detail/10901641
https://avg.163.com/topic/detail/10901628
https://avg.163.com/topic/detail/10901633
https://avg.163.com/topic/detail/10901629
https://avg.163.com/topic/detail/10901615
https://avg.163.com/topic/detail/10901616
https://avg.163.com/topic/detail/10901614
https://avg.163.com/topic/detail/10901612
https://avg.163.com/topic/detail/10901602
https://avg.163.com/topic/detail/10901603
https://avg.163.com/topic/detail/10901601
https://avg.163.com/topic/detail/10901600
https://avg.163.com/topic/detail/10901592
https://avg.163.com/topic/detail/10901593
https://avg.163.com/topic/detail/10901591
https://avg.163.com/topic/detail/10901590
https://avg.163.com/topic/detail/10901589
https://avg.163.com/topic/detail/10901588
https://avg.163.com/topic/detail/10901587
https://avg.163.com/topic/detail/10901586
https://avg.163.com/topic/detail/10901585
https://avg.163.com/topic/detail/10901582
https://avg.163.com/topic/detail/10901584
https://avg.163.com/topic/detail/10901583
https://avg.163.com/topic/detail/10901581
https://avg.163.com/topic/detail/10901580
https://avg.163.com/topic/detail/10901579
https://avg.163.com/topic/detail/10901569
https://avg.163.com/topic/detail/10901568
https://avg.163.com/topic/detail/10901563
https://avg.163.com/topic/detail/10901560
https://avg.163.com/topic/detail/10901561
https://avg.163.com/topic/detail/10901559
https://avg.163.com/topic/detail/10901558
https://avg.163.com/topic/detail/10901557
https://avg.163.com/topic/detail/10901555
https://avg.163.com/topic/detail/10901552
https://avg.163.com/topic/detail/10901554
https://avg.163.com/topic/detail/10901553
https://avg.163.com/topic/detail/10901550
https://avg.163.com/topic/detail/10901547
https://avg.163.com/topic/detail/10901540
https://avg.163.com/topic/detail/10901539
https://avg.163.com/topic/detail/10901538
https://avg.163.com/topic/detail/10901537
https://avg.163.com/topic/detail/10901532
https://avg.163.com/topic/detail/10901530
https://avg.163.com/topic/detail/10901529
https://avg.163.com/topic/detail/10901528
https://avg.163.com/topic/detail/10901527
https://avg.163.com/topic/detail/10901526
https://avg.163.com/topic/detail/10901525
https://avg.163.com/topic/detail/10901524
https://avg.163.com/topic/detail/10901523
https://avg.163.com/topic/detail/10901522
https://avg.163.com/topic/detail/10901521
https://avg.163.com/topic/detail/10901519
https://avg.163.com/topic/detail/10901518
https://avg.163.com/topic/detail/10901520
https://avg.163.com/topic/detail/10901516
https://avg.163.com/topic/detail/10901515
https://avg.163.com/topic/detail/10901328
https://avg.163.com/topic/detail/10901338
https://avg.163.com/topic/detail/10901505
https://avg.163.com/topic/detail/10901497
https://avg.163.com/topic/detail/10901496
https://avg.163.com/topic/detail/10901495
https://avg.163.com/topic/detail/10901490
https://avg.163.com/topic/detail/10901492
https://avg.163.com/topic/detail/10901489
https://avg.163.com/topic/detail/10901487
https://avg.163.com/topic/detail/10901491
https://avg.163.com/topic/detail/10901486
https://avg.163.com/topic/detail/10901485
https://avg.163.com/topic/detail/10901483
https://avg.163.com/topic/detail/10901452
https://avg.163.com/topic/detail/10901469
https://avg.163.com/topic/detail/10901459
https://avg.163.com/topic/detail/10901457
https://avg.163.com/topic/detail/10901455
https://avg.163.com/topic/detail/10901449
https://avg.163.com/topic/detail/10901448
https://avg.163.com/topic/detail/10901445
https://avg.163.com/topic/detail/10901444
https://avg.163.com/topic/detail/10901443
https://avg.163.com/topic/detail/10901442
https://avg.163.com/topic/detail/10901441
https://avg.163.com/topic/detail/10901440
https://avg.163.com/topic/detail/10901439
https://avg.163.com/topic/detail/10901438
https://avg.163.com/topic/detail/10901435
https://avg.163.com/topic/detail/10901424
https://avg.163.com/topic/detail/10901422
https://avg.163.com/topic/detail/10901420
https://avg.163.com/topic/detail/10901416
https://avg.163.com/topic/detail/10901419
https://avg.163.com/topic/detail/10901418
https://avg.163.com/topic/detail/10901417
https://avg.163.com/topic/detail/10901415
https://avg.163.com/topic/detail/10901414
https://avg.163.com/topic/detail/10901408
https://avg.163.com/topic/detail/10901410
https://avg.163.com/topic/detail/10901409
https://avg.163.com/topic/detail/10901407
https://avg.163.com/topic/detail/10901406
https://avg.163.com/topic/detail/10901405
https://avg.163.com/topic/detail/10901395
https://avg.163.com/topic/detail/10901386
https://avg.163.com/topic/detail/10901388
https://avg.163.com/topic/detail/10901387
https://avg.163.com/topic/detail/10901385
https://avg.163.com/topic/detail/10901384
https://avg.163.com/topic/detail/10901382
https://avg.163.com/topic/detail/10901383
https://avg.163.com/topic/detail/10901381
https://avg.163.com/topic/detail/10901380
https://avg.163.com/topic/detail/10901379
https://avg.163.com/topic/detail/10901378
https://avg.163.com/topic/detail/10901376
https://avg.163.com/topic/detail/10901377
https://avg.163.com/topic/detail/10901375
https://avg.163.com/topic/detail/10901372
https://avg.163.com/topic/detail/10901374
https://avg.163.com/topic/detail/10901373
https://avg.163.com/topic/detail/10901371
https://avg.163.com/topic/detail/10901370
https://avg.163.com/topic/detail/10901354
https://avg.163.com/topic/detail/10901352
https://avg.163.com/topic/detail/10901353
https://avg.163.com/topic/detail/10901350
https://avg.163.com/topic/detail/10901351
https://avg.163.com/topic/detail/10901349
https://avg.163.com/topic/detail/10901312
https://avg.163.com/topic/detail/10901348
https://avg.163.com/topic/detail/10901347
https://avg.163.com/topic/detail/10901346
https://avg.163.com/topic/detail/10901330
https://avg.163.com/topic/detail/10901338
https://avg.163.com/topic/detail/10901328
https://avg.163.com/topic/detail/10901326
https://avg.163.com/topic/detail/10901327
https://avg.163.com/topic/detail/10901324
https://avg.163.com/topic/detail/10901325
https://avg.163.com/topic/detail/10901323
https://avg.163.com/topic/detail/10901322
https://avg.163.com/topic/detail/10901317
https://avg.163.com/topic/detail/10901321
https://avg.163.com/topic/detail/10901316
https://avg.163.com/topic/detail/10901320
https://avg.163.com/topic/detail/10901318
https://avg.163.com/topic/detail/10901311
https://avg.163.com/topic/detail/10901315
https://avg.163.com/topic/detail/10901314
https://avg.163.com/topic/detail/10901313
https://avg.163.com/topic/detail/10901289
https://avg.163.com/topic/detail/10901285
https://avg.163.com/topic/detail/10901287
https://avg.163.com/topic/detail/10901283
https://avg.163.com/topic/detail/10901282
https://avg.163.com/topic/detail/10901281
https://avg.163.com/topic/detail/10901278
https://avg.163.com/topic/detail/10901280
https://avg.163.com/topic/detail/10901275
https://avg.163.com/topic/detail/10901272
https://avg.163.com/topic/detail/10901271
https://avg.163.com/topic/detail/10901270
https://avg.163.com/topic/detail/10901269
https://avg.163.com/topic/detail/10901266
https://avg.163.com/topic/detail/10901263
https://avg.163.com/topic/detail/10901258
https://avg.163.com/topic/detail/10901248
https://avg.163.com/topic/detail/10901246
https://avg.163.com/topic/detail/10901241
https://avg.163.com/topic/detail/10901245
https://avg.163.com/topic/detail/10901243
https://avg.163.com/topic/detail/10901242
https://avg.163.com/topic/detail/10901240
https://avg.163.com/topic/detail/10901239
https://avg.163.com/topic/detail/10901238
https://avg.163.com/topic/detail/10901237
https://avg.163.com/topic/detail/10901236
https://avg.163.com/topic/detail/10901235
https://avg.163.com/topic/detail/10901234
https://avg.163.com/topic/detail/10901233
https://avg.163.com/topic/detail/10901220
https://avg.163.com/topic/detail/10901216
https://avg.163.com/topic/detail/10901215
https://avg.163.com/topic/detail/10901214
https://avg.163.com/topic/detail/10901213
https://avg.163.com/topic/detail/10901212
https://avg.163.com/topic/detail/10901208
https://avg.163.com/topic/detail/10901211
https://avg.163.com/topic/detail/10901210
https://avg.163.com/topic/detail/10901201
https://avg.163.com/topic/detail/10901209
https://avg.163.com/topic/detail/10901207
https://avg.163.com/topic/detail/10901206
https://avg.163.com/topic/detail/10901204
https://avg.163.com/topic/detail/10901203
https://avg.163.com/topic/detail/10901202
https://avg.163.com/topic/detail/10901200
https://avg.163.com/topic/detail/10901199
https://avg.163.com/topic/detail/10901190
https://avg.163.com/topic/detail/10901182
https://avg.163.com/topic/detail/10901180
https://avg.163.com/topic/detail/10901181
https://avg.163.com/topic/detail/10901178
https://avg.163.com/topic/detail/10901176
https://avg.163.com/topic/detail/10901177
https://avg.163.com/topic/detail/10901175
https://avg.163.com/topic/detail/10901172
https://avg.163.com/topic/detail/10901173
https://avg.163.com/topic/detail/10901170
https://avg.163.com/topic/detail/10901171
https://avg.163.com/topic/detail/10901169
https://avg.163.com/topic/detail/10901168
https://avg.163.com/topic/detail/10901167
https://avg.163.com/topic/detail/10901166
https://avg.163.com/topic/detail/10901164
https://avg.163.com/topic/detail/10901161
https://avg.163.com/topic/detail/10901165
https://avg.163.com/topic/detail/10901163
https://avg.163.com/topic/detail/10901159
https://avg.163.com/topic/detail/10901162
https://avg.163.com/topic/detail/10901160
https://avg.163.com/topic/detail/10901158
https://avg.163.com/topic/detail/10901157
https://avg.163.com/topic/detail/10901156
https://avg.163.com/topic/detail/10901155
https://avg.163.com/topic/detail/10901154
https://avg.163.com/topic/detail/10901153
https://avg.163.com/topic/detail/10901152
https://avg.163.com/topic/detail/10901151
https://avg.163.com/topic/detail/10901149

# 正确的赋值
variable_name=value

# 有可能会导致错误
variable_name = value

除了显式地直接赋值,还可以用语句给变量赋值,如:

for file in `ls /etc`

for file in $(ls /etc)

以上语句将 /etc 下目录的文件名循环出来。


使用变量

使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

实例

your_name="qinjx"
echo $your_name
echo ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

实例

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

推荐给所有变量加上花括号,这是个好的编程习惯。

已定义的变量,可以被重新定义,如:

实例

your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name

这样写是合法的,但注意,第二次赋值的时候不能写$your_name="alibaba",使用变量的时候才加美元符($)。

只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

下面的例子尝试更改只读变量,结果报错:

实例

#!/bin/bash

myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.runoob.com"

赞(0)
未经允许不得转载:171主机测评 » Shell 变量3535
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址