linux下shell的两个系统shell 给变量赋值$@和$*有何区别?

liangey 的BLOG
用户名:liangey
文章数:141
评论数:33
访问量:15135
注册日期:
阅读量:5863
阅读量:12276
阅读量:348890
阅读量:1048120
51CTO推荐博文
& & & 关于shell变量的含义,对新手来说:有时候真的是傻傻分不清楚!今天就简单为大家介绍下这些常用变量的含义!& & & 下面我通过一个shell脚本输出了:$$ 、$!、$?、$*、$@、$#、$0、$1、$2这几个变量!一、创建一个名为params.sh的脚本[ley@leyserver&~]$&vim&params.sh
#!/bin/bash
#Created&by&ley&on&
#Testing&the&Paramters
echo&&"The&compleate&list&is&%s\n"&"$$"&&
echo&&"The&compleate&list&is&%s\n"&"$!"
echo&&"The&compleate&list&is&%s\n"&"$?"
echo&&"The&compleate&list&is&%s\n"&"$*"
echo&&"The&compleate&list&is&%s\n"&"$@"
echo&&"The&compleate&list&is&%s\n"&"$#"
echo&&"The&compleate&list&is&%s\n"&"$0"
echo&&"The&compleate&list&is&%s\n"&"$1"
echo&&"The&compleate&list&is&%s\n"&"$2"二、含义详解linux中shell变量$#,$@,$0,$1,$2的含义解释:&
变量说明:&
$$&====&&&Shell本身的PID(ProcessID)&
$!&====&&Shell最后运行的后台Process的PID&
$?&====&&最后运行的命令的结束代码(返回值)&
$-&====&&使用Set命令设定的Flag一览&
$*&====&&所有参数列表。如"$*"用「"」括起来的情况、以"$1&$2&…&$n"的形式输出所有参数。&
$@&====&&所有参数列表。如"$@"用「"」括起来的情况、以"$1"&"$2"&…&"$n"&的形式输出所有参数
$#&====&&添加到Shell的参数个数&
$0&====&&Shell本身的文件名&
$1~$n&====&&添加到Shell的各参数值。$1是第1参数、$2是第2参数…。三、执行脚本[root@localhost&~]#&./params.sh&123456&QQ
The&compleate&list&is&%s\n&3406&&&&#PID为3406
The&compleate&list&is&%s\n&&&&&&&&&#shell最后运行的后台(这里无)
The&compleate&list&is&%s\n&0&&&&&&&#结束返回的状态码(0一般表示为执行成功)
The&compleate&list&is&%s\n&123456&QQ&&#参数列表
The&compleate&list&is&%s\n&123456&QQ&&#参数列表
The&compleate&list&is&%s\n&2&&&&&&&#参数为2个
The&compleate&list&is&%s\n&./params.sh&&&#shell的文件名
The&compleate&list&is&%s\n&123456&&&#第一个参数
The&compleate&list&is&%s\n&QQ&&&&&&&#第二个参数& &好了,通过以上这个例子。博友们应该有所了解了!有问题请多多指教!本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)查看:2049|回复:4
复制内容到剪贴板代码:#!/bin/sh
a=`cat ip.txt|awk '{print $1}'`
b=`cat ip.txt|awk '{print $2}'`
for i in $a
expect -c&
set password $j
set timeout 3
spawn ssh root@$ip
&*yes/no& {send &yes\r&;exp_continue}
&*Password:& {send &$password\r&}
我要怎样传入$i和$j的值的?
遇到好几次类似这样要同时循环两个变量的。。。都不知怎么搞
ip.txt的内容 $i获取ip&&$j获取密码
[root@localhost expect]# cat ip.txt
192.16.1.211& &centos
192.16.1.212& &qwe123
192.16.1.213& &centos
192.16.1.214& &centos214
192.16.1.216& &centosjava
192.16.1.240& &suselinux
192.16.1.246& &panabit
192.16.1.250& &centos
我上面的那个脚本应该怎样传入$i和$j的值的?
优秀技术经理
do echo $j $i;done&ip.txt
这样试一下呢?
引用:原帖由 gm100861 于
10:48 发表
do echo $j $i;done 这样是可以的~
优秀技术经理
引用:原帖由 juanmaoking 于
11:03 发表
这样是可以的~ 那就是解决了哦?
引用:原帖由 gm100861 于
11:23 发表
那就是解决了哦? 是滴~多谢~Linux Shell脚本编程--变量$#,$@,$*,$?,$0,$1,$2的含义解释
linux中shell变量$#,$@,$0,$1,$2的含义解释:
linux中shell变量$#,$@,$0,$1,$2的含义解释:&
变量说明:&
Shell本身的PID(ProcessID)&
Shell最后运行的后台Process的PID&
最后运行的命令的结束代码(返回值)&
使用Set命令设定的Flag一览&
所有参数列表。如&$*&用「&」括起来的情况、以&$1 $2 & $n&的形式输出所有参数。&
所有参数列表。如&$@&用「&」括起来的情况、以&$1& &$2& & &$n& 的形式输出所有参数。&
添加到Shell的参数个数&
Shell本身的文件名&
添加到Shell的各参数值。$1是第1参数、$2是第2参数&。&
1 #!/bin/bash&
&3 printf&The complete list is %s\n&&$$&
&4 printf&The complete list is %s\n&&$!&
&5 printf&The complete list is %s\n&&$?&
&6 printf&The complete list is %s\n&&$*&
&7 printf&The complete list is %s\n&&$@&
&8 printf&The complete list is %s\n&&$#&
&9 printf&The complete list is %s\n&&$0&
10 printf&&The complete list is %s\n&&&$1&
11 printf&&The complete list is %s\n&&&$2
[Aric@localhost ~]$ bashparams.sh 123456 QQ
The complete listis24249
The complete listis
The complete listis0
The complete listis123456 QQ
The complete listis123456
The complete listisQQ
The complete listis2
The complete listisparams.sh
The complete listis123456
The complete listisQQ
(责任编辑:IT)
------分隔线----------------------------
我在 CU 的日子并不长,有幸在 shell 版上与大家结缘。除了跟众前辈学习到不少技巧之...
cpu时间是一项重要的资源,有时,我们需要跟踪某个时间内占用cpu周期最多的进程。 在...
介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介...
Shell是一种具备特殊功能的程序,它是介于使用者和 UNIX/Linux 操作系统之核心程序(k...
一. Shell的基本语法 1. 变量 按照惯例,Shell变量由全大写字母加下划线组成,有两种...
1. find find pathname -options [-print -exec -ok] 让我们来看看该命令的参数: pat...Linux bash Shell中的变量类型详解-linux_脚本专栏-脚本宝典
页面导航: >
> Linux bash Shell中的变量类型详解
Linux bash Shell中的变量类型详解
在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一、bash变量类型: 本地变量 局
在Linux系统中进行日常运维或者是编写时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家:一、bash变量类型:本地变量局部变量环境变量位置变量特殊变量(内置)二、本地变量:varname=value:作用域为整个bash进程可以使用;变量命名规范:1. 只能含字母、数字和下划线,并且以字母和下划线开头2. 最好不要跟系统已有的环境变量重名3. 见名知意三、局部变量:local varname=value:作用域为当前代码段;四、环境变量:作用域为当前shell进程及其子进程,不能影响到其父进程;export varname=value “导出”,如果变量已经定义可以只是用变量名 export varname,即1. export varname=value2. varname=valueexport varname脚本在执行命令时会启动一个子shell环境变量:系统自动执行的脚本(非命令行启动)就需要自我定义需要的个环境变量;五、位置变量:$1,$2,$3,……cat first.sh test.txt hello$1: first.sh$2: test.txt$3: helloshift:踢掉参数shift n:踢掉n个参数,默认踢掉一个参数六、特殊变量:$?:上一个命令执行状态的返回值:程序执行可能有两种返回值:1. 程序执行结果2. 程序状态返回吗(0-255)0 则为执行正确1-255 则执行出错(1,2,127系统预留);$#:获取当前shell命令行中参数的总个数$*:获取当前shell的所有参数 “$1 $2 $3 …,受IFS控制$@:这个程序的所有参数 “$1″ “$2″ “$3″ “…”,不受IFS控制$0 获取当前执行的的文件名$n 获取当前执行的shell脚本的第n个参数值,n=1..9$$ 获取当前shell的进程号(PID)$! 执行上一个指令的PID
本文链接:
最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具}

我要回帖

更多关于 shell 给变量赋值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信