=========================================================================
=========================================================================
命令行参数
在C/C++编程语言中我们有一个main主函数,在刚开始接触C语言时我们会发现这个主函数其实是有参数的,我们不妨在Linux系统中将其中两个参数使用起来看看其运行结果。
1 #include<stdio.h>
2 int main(int argc, char*argv[])
3 {
4 int i=0;
5 for(i=0;i<argc;i++)
6 {
7 printf("%d %sn",i,argv[i]);
8 }
9 return 0;
10 }
怎么会是这样的输出?我们再试试
好像有点眉头了,这里的第一个参数代表着shell命令行中我们以空格为间隔的字符串的个数,即为我们第二个字符串数组的参数,第二个字符数组参数代表我们以空格为间隔的每个字符串。
1 #include<stdlib.h>
2 #include<stdio.h>
3 int main(int argc, char*argv[])
4 {
5 if(argc!=2)
6 {
7 printf("touch:miss file operand");
8 }
9 FILE* fp=fopen(argv[1],"w");
10 if(fp!=NULL)
11 fclose(fp);
12 return 0;
13 }
环境变量
为什么我的命令要带 . / 呢?
PATH
在执行一些系统命令时候我们可以直接执行,也可以使用路径执行。
可以直接执行系统命令是因为我们PATH环境变量记录着我们命令所在的路径,因此我们可以不用输入路径。
查看PATH
echo $PATH
PATH= $PATH:路径
我们也可以之间把自己可执行程序的路径拷贝到PATH的路径下,这就是安装程序;将自己程序的路径从PATH中删除就是程序的卸载。
注意:
自己误操作修改了PATH中的所有内容不要慌张重新登入服务器就好了。
$PWD
查看环境变量PWD
echo $PWD
$HOME
在我们的服务器中分普通用户和root用户,普通用户和root用户最大的区别就是权限和家目录的不同,在前面的文章我们已经介绍了权限的区别;今天我们来看看家目录的区别。
在我们登入我们的服务器时需要输入用户名和密码,服务器进行认证形成各种环境变量,此时根据用户名初始化环境变量HOME,登入上去服务器进入(cd $HOME)用户对应的家目录。
查看系统支持的环境变量
获取环境变量
1 #include<stdlib.h>
2 #include<stdio.h>
3 #include<string.h>
4 int main(int argc, char*argv[])
5 {
6 char * name = getenv("USER");
7 if(strcmp(name,"root")==0)
8 {
9 printf("%s:合法用户n",name);
10 printf("I'm root!!!n");
11 }
12 else
13 {
14 printf("%s:非法用户n",name);
15 exit(-1);
16 }
17 return 0;
18 }
今天对Linux下进命令行参数和环境变量分享到这就结束了,希望大家读完后有很大的收获,也可以在评论区点评文章中的内容和分享自己的看法。您三连的支持就是我前进的动力,感谢大家的支持!!!
原文地址:https://blog.csdn.net/qq_55119554/article/details/134742689
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_24430.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!