linux变量

Posted Acumen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux变量相关的知识,希望对你有一定的参考价值。

  • linux中位置参数变量
$n n为数字,$0代表命令本身,$1-$9代表第一至第九哥参数,十以上的参数需要大括号包含,如${10}
$* 代表命令行中所有的参数,$*把所有参数看成一个整体
[email protected] 代表命令行中的所有参数,不过[email protected]把每个参数区分对待
$# 代表命令行中所有参数的个数

 

 1 [email protected]606:~/testpace$ ./for.sh 1 99 25
 2 125
 3 The parameters is : 1 99 25
 4 parameters : 1
 5 parameters : 99
 6 parameters : 25
 7 3
 8 [email protected]606:~/testpace$ cat for.sh 
 9 #!/bin/bash
10 
11 # $* [email protected] $#
12 
13 num1=$1
14 num2=$2
15 num3=$3
16 
17 sum=$(($num1+$num2+$3))
18 echo $sum
19 
20 
21 for i in "$*"
22     do
23         echo "The parameters is : $i"
24     done
25 
26 for y in "[email protected]"
27     do
28         echo "parameters : $y"
29     done
30 
31 echo $#
32 [email protected]606:~/testpace$ 
  • linux预定义变量
预定义变量 作用
$? 最后一次执行的命令的返回状态.如果这个变量的值为0,证明上一个命令正确执行;如果这个值为非0 (具体数值,由命令自己决定),则证明上一个命令执行不正确.
$$ 当前进程的进程号 (PID)
$! 后台运行的最后一个进程的进程号 (PID)
 1 [email protected]606:/home/ucm/testpace# cat predefined.sh 
 2 #!/bin/bash
 3 
 4 echo "当前PID : $$"
 5 
 6 echo "----------***********----------"
 7 echo $?
 8 
 9 find / -name pidTest >> /home/ucm/testpace/find.log &
10 echo "后台PID : $!"
11 [email protected]606:/home/ucm/testpace# chmod 755 predefined.sh
12 [email protected]606:/home/ucm/testpace# ./predefined.sh 
13 当前PID : 4608
14 ----------***********----------
15 0
16 后台PID : 4609
17 [email protected]606:/home/ucm/testpace# find: ‘/run/user/1000/gvfs’: 权限不够
18 ^C
19 [email protected]606:/home/ucm/testpace# cat find.log 
20 /home/ucm/testpace/pidTest
21 [email protected]606:/home/ucm/testpace# 

 

  • 接受键盘输入

read [option] [variable name]

options:

  -p "提示信息" : 在等待read输入时,输出提示信息

  -t 秒数 : read命令会一直等待用户输入,使用此项可以制定等待时间

  -n 字符数 : read命令只接受指定的字符数,就会执行

  -s : 隐藏输入的数据,适用于机密信息的输入

 1 [email protected]606:/home/ucm/testpace# cat read.sh 
 2 #!/bin/bash
 3 
 4 read -p "please input your name : " -t 30 name
 5 echo $name
 6 
 7 read -p "please input your passwd : " -s -t 30 passwd
 8 echo -e "\n"
 9 echo $passwd
10 
11 read -p "please input your sex [M|F] : " -n 1 sex
12 echo -e "\n"
13 echo $sex
14 [email protected]606:/home/ucm/testpace# ./read.sh 
15 please input your name : linux
16 linux
17 please input your passwd : 
18 
19 123456
20 please input your sex [M|F] : f
21 
22 f
23 [email protected]606:/home/ucm/testpace# 

 

以上是关于linux变量的主要内容,如果未能解决你的问题,请参考以下文章

如何创建片段以重复变量编号中的代码行

如何使用Android片段管理器传递变量[重复]

append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]

[linux][c/c++]代码片段01

[linux][c/c++]代码片段02

使用片段时 Intellij 无法正确识别 Thymeleaf 模型变量