linux 中变量的类型 :自定义变量 环境变量 位置参数变量 预定义变量
1、echo $LANG 当前语系变量
echo local -a |more 当然支持所有语系
一切皆文件
set 当前shell所有变量 (本地) env 所有环境变量 export 用来显示和设置环境变量
echo $PATH 环境变量
(注意用xshell工具和原生linux中黑字符界面支持的是不一样的)
本身不支持中文字符编码
echo $LANG df -h两者显示结果是不一样的。
如果纯字符界面中非要强制改,用LANG=zh_CN.UTF-8,还是不能识别。会乱码。
建议安装zhcon中文插件。(如果非要用纯字符界面,脑子有病的情况下)
更建议用第三方工具直接登录。
df -h 查看硬盘大小
2、 位置参数变量 $n $a(代表命令行中所有参数) $#(返回参数的个数)
$n n为数字, $0代表命令本身。$1-9代表1-9个参数
num1=$1
num2=$2
sum=$(($num1+$num2))#括起来会做求和预算,要不然就是字符串相加了。
echo $sum
#如果涉及第三方用户,用read命令
$* (是预定义变量中的一类。$*中的所有参数看成一个整体,所以for循环只是循环一次)
$@ 中有几个参数,就循环几次。
for i in "$*"
do
echo $i
done
for y in "$@"
do
echo $y
done
~
~
3、预定义变量
$?最后一次执行命令的返回状态。如果是0,正确执行。如果不正确,非0。注意$?中问号是英文状态。
如果程序自己写,可以通过错误返回值调试错误。
用的最多的是 $? 最多。
此结果用来判断&& || 判断的也是$?的值。
$$ 返回当前进程号 pid
root@centos demosh]# echo $$
7727
[root@centos demosh]# ps aux |grep 7727
root 7727 0.0 0.0 108336 1868 pts/1 Ss 18:21 0:01 -bash
root 10252 0.0 0.0 103252 848 pts/1 S+ 19:55 0:00 grep 7727
[root@centos demosh]#
$!后台运行的pid号
find / -name demo.sh & (& 符号后台运行)
#!/bin/bash
find /usr -name for.sh &
echo "back pid is $!"
调用 :./houtai.sh
输出 back pid is 11090
~
5、接受键盘输入
read 命令
-p 提示信息
-t 秒数,指定等待时间
-n 限制字符数 1个,2个。。。
-s 输入隐藏数据
read -p 'input your name:' name
echo $name
read -p 'input your age in 10 seconds:' -t 10 age
echo -e "\n"
read -p 'input your password' -s password
echo $password
read -p 'input your sex[M/F] ' -n 1 sex
# -n 只接受一个字符
echo -e "\n"
1、echo $LANG 当前语系变量
echo local -a |more 当然支持所有语系
一切皆文件
set 当前shell所有变量 (本地) env 所有环境变量 export 用来显示和设置环境变量
echo $PATH 环境变量
(注意用xshell工具和原生linux中黑字符界面支持的是不一样的)
本身不支持中文字符编码
echo $LANG df -h两者显示结果是不一样的。
如果纯字符界面中非要强制改,用LANG=zh_CN.UTF-8,还是不能识别。会乱码。
建议安装zhcon中文插件。(如果非要用纯字符界面,脑子有病的情况下)
更建议用第三方工具直接登录。
df -h 查看硬盘大小
2、 位置参数变量 $n $a(代表命令行中所有参数) $#(返回参数的个数)
$n n为数字, $0代表命令本身。$1-9代表1-9个参数
sum.sh
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2))#括起来会做求和预算,要不然就是字符串相加了。
echo $sum
调用 ./sum.sh 67 23
#如果涉及第三方用户,用read命令
$* (是预定义变量中的一类。$*中的所有参数看成一个整体,所以for循环只是循环一次)
$@ 中有几个参数,就循环几次。
for.sh
for i in "$*"
do
echo $i
done
for y in "$@"
do
echo $y
done
~
调用 :./for.sh 1 3 4 5 6
输出
1 3 4 5 6
1
3
4
5
6
~
3、预定义变量
$?最后一次执行命令的返回状态。如果是0,正确执行。如果不正确,非0。注意$?中问号是英文状态。
如果程序自己写,可以通过错误返回值调试错误。
用的最多的是 $? 最多。
此结果用来判断&& || 判断的也是$?的值。
$$ 返回当前进程号 pid
root@centos demosh]# echo $$
7727
[root@centos demosh]# ps aux |grep 7727
root 7727 0.0 0.0 108336 1868 pts/1 Ss 18:21 0:01 -bash
root 10252 0.0 0.0 103252 848 pts/1 S+ 19:55 0:00 grep 7727
[root@centos demosh]#
$!后台运行的pid号
find / -name demo.sh & (& 符号后台运行)
#!/bin/bash
find /usr -name for.sh &
echo "back pid is $!"
调用 :./houtai.sh
输出 back pid is 11090
~
5、接受键盘输入
read 命令
-p 提示信息
-t 秒数,指定等待时间
-n 限制字符数 1个,2个。。。
-s 输入隐藏数据
read -p 'input your name:' name
echo $name
read -p 'input your age in 10 seconds:' -t 10 age
echo -e "\n"
read -p 'input your password' -s password
echo $password
read -p 'input your sex[M/F] ' -n 1 sex
# -n 只接受一个字符
echo -e "\n"