$*与$@的异同
来源:互联网 发布:口袋妖怪x网络联机 编辑:程序博客网 时间:2024/04/30 13:18
两者都代表bash命令行参数,在没有用双引号括起来的时候,两者效果一样
但是两者若被双引号括起来,就有不同了
$*会显示出参数见的分隔符,而$@则不会。这是因为前者被解读为一个整体字符串,而后在解读为一个个分开的字符串
参考文献:http://bash.cyberciti.biz/guide/$IFS
IFS Effect On The Values of "$@" And "$*"
- $@ and $* are special command line arguments shell variables.
- The $@ holds list of all arguments passed to the script.
- The $* holds list of all arguments passed to the script.
- Create a shell script called ifsargs.sh:
#!/bin/bash# ifsargs.sh - Cmd args - positional parameter demoecho "Command-Line Arguments Demo"echo "*** All args displayed using \$@ positional parameter ***"echo $@echo "*** All args displayed using \$* positional parameter ***"echo $*
Save and close the file. Run it as follows:
chmod +x ifsargs.sh./ifsargs.sh honda yamaha harley-davidson kawasaki
Sample outputs:
Command-Line Arguments Demo*** All args displayed using $@ positional parameter ***honda yamaha harley-davidson kawasaki*** All args displayed using $* positional parameter ***honda yamaha harley-davidson kawasaki
- As you can see, the values of $@ and $* are same.
- However, the values of "$@" and "$*" are different (note double quotes).
- Edit ifsargs.sh as follows
#!/bin/bash# ifsargs.sh - Cmd args - positional parameter demo #### Set the IFS to | ####IFS='|' echo "Command-Line Arguments Demo" echo "*** All args displayed using \$@ positional parameter ***"echo "$@" #*** double quote added ***# echo "*** All args displayed using \$* positional parameter ***"echo "$*" #*** double quote added ***#
Save and close the file. Run it as follows:
./ifsargs.sh honda yamaha harley-davidson kawasaki
Sample outputs:
Command-Line Arguments Demo*** All args displayed using $@ positional parameter ***honda yamaha harley-davidson kawasaki*** All args displayed using $* positional parameter ***honda|yamaha|harley-davidson|kawasaki
- $@ expanded as "$1" "$2" "$3" ... "$n"
- $* expanded as "$1y$2y$3y...$n", where y is the value of IFS variable i.e. "$*" is one long string and $IFS act as an separator or token delimiters.
- $*与$@的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- JSF与Struts的异同
- java 与 c#的异同
- JSF与Struts的异同
- TBool与bool的异同
- epoll与iocp的异同
- Ubuntu Linux 环境变量PATH设置
- javascript获取div的内容 精华篇
- js获取URL中的参数值
- 底下是圆点切换图片
- 大型企业兴起新一轮创业浪潮
- $*与$@的异同
- 为Silverlight 提供将Json解析为Geometry的方法
- 生成.so的makefile
- OO设计原则
- 通过手机摄像头实现动作追踪一----单帧的识别 .
- Linux下关闭和开启IPv6的方法
- Tigra BikeCharge:骑自行车也能给手机充电
- RHEL 6.2 配置VNC
- 黑马程序员_Java学习日记17_IO流5