当前位置: 技术问答>linux和unix
一个很有趣的命令行的事
来源: 互联网 发布时间:2016-05-14
本文导语: 刚刚发现命令行运行一个程序时有趣的现象,现在和大家分享一下. 先请大家看一段非常简单的程序: #include int main( int argc, char **argv){ int i = 0; if ( argc...
刚刚发现命令行运行一个程序时有趣的现象,现在和大家分享一下.
先请大家看一段非常简单的程序:
先请大家看一段非常简单的程序:
#include
int main(
int argc,
char **argv){
int i = 0;
if ( argc
>
-bash-3.00$
我接着试了以下几种情况,就是想传入参数""和'':
-bash-3.00$ ./Parameter """" (传参数"",得到空)
There are 2 parameters in cmd:
./Parameter
-bash-3.00$ ./Parameter '""'(传参数"",得到"")
There are 2 parameters in cmd:
./Parameter ""
-bash-3.00$ ./Parameter "''"(传参数''(‘’),得到'')
There are 2 parameters in cmd:
./Parameter ''
-bash-3.00$ ./Parameter ''''(传参数''(‘’),得到空)
There are 2 parameters in cmd:
./Parameter
|
楼主糊涂了,
./Parameter *
There are 5 parameters in cmd:
./Parameter Parameter Parameter.c PrintP PrintP.c
这个就更奇怪了,本来想传入字母'*',但传入的确多了很多参数,原来把*作为参数传入是将本路很下所有的文件名作为参数传入,但是参数的顺序我现在还没有发现规律,至少不是按时间先后,也不是按文件名的字母排序(两个验证后都不是).
*字符在Bash下会扩展的,在这里就是扩展成当前目录下的所有文件,这明显是按文件名字母排序的呀。
在bash下,* " ' ` 等很多都是特殊字符,使用的时候要用符号转义的。
./Parameter *
./Parameter ''
..........
./Parameter *
There are 5 parameters in cmd:
./Parameter Parameter Parameter.c PrintP PrintP.c
这个就更奇怪了,本来想传入字母'*',但传入的确多了很多参数,原来把*作为参数传入是将本路很下所有的文件名作为参数传入,但是参数的顺序我现在还没有发现规律,至少不是按时间先后,也不是按文件名的字母排序(两个验证后都不是).
*字符在Bash下会扩展的,在这里就是扩展成当前目录下的所有文件,这明显是按文件名字母排序的呀。
在bash下,* " ' ` 等很多都是特殊字符,使用的时候要用符号转义的。
./Parameter *
./Parameter ''
..........
|
学习
|
对一些特殊字符,可以在前面加来表示。
|
./
/
/
/
./
对
/
/
/
./
对
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。