当前位置: 技术问答>linux和unix
请问怎样写一个自己命名的命令?3Q
来源: 互联网 发布时间:2015-10-02
本文导语: 就是写一个自己命名的命令,命令要带参数,根据参数不同执行不同操作。(就像linux中内的命令一样,我自己定义的命令其实也要是使用linux中的命令,是多个命令的集合),根据执行自己命名的命令及参数执行对...
就是写一个自己命名的命令,命令要带参数,根据参数不同执行不同操作。(就像linux中内的命令一样,我自己定义的命令其实也要是使用linux中的命令,是多个命令的集合),根据执行自己命名的命令及参数执行对应的操作。
|
用shell写呀
例:(举个例子呀,比如我要解压一个tar文件,然后把解压后的文件copy到一个目录下,参数有两个,一个是压缩文件所在的目录,一个是copy到的目标目录,十分感谢!)
#!/bin/bash
if [ $# != 2 ]
then
echo "please enter two parament"
fi
para1=$1
para2=$2
mkdir tempdir
cd tempdir
uncompress $para1 | tar xvf
cd ..
cp *.* $para2
cp * $para2
例:(举个例子呀,比如我要解压一个tar文件,然后把解压后的文件copy到一个目录下,参数有两个,一个是压缩文件所在的目录,一个是copy到的目标目录,十分感谢!)
#!/bin/bash
if [ $# != 2 ]
then
echo "please enter two parament"
fi
para1=$1
para2=$2
mkdir tempdir
cd tempdir
uncompress $para1 | tar xvf
cd ..
cp *.* $para2
cp * $para2
|
getopt(分析命令行参数)
相关函数
表头文件 #include
定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
返回值 如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
范例 #include
#include
int main(int argc,char **argv)
{
int ch;
opterr = 0;
while((ch = getopt(argc,argv,”a:bcde”))!= -1)
switch(ch)
{
case ‘a’:
printf(“option a:’%s’n”,optarg);
break;
case ‘b’:
printf(“option b :bn”);
break;
default:
printf(“other option :%cn”,ch);
}
printf(“optopt +%cn”,optopt);
}
执行 $./getopt –b
option b:b
$./getopt –c
other option:c
$./getopt –a
other option :?
$./getopt –a12345
option a:’12345’
相关函数
表头文件 #include
定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
返回值 如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
范例 #include
#include
int main(int argc,char **argv)
{
int ch;
opterr = 0;
while((ch = getopt(argc,argv,”a:bcde”))!= -1)
switch(ch)
{
case ‘a’:
printf(“option a:’%s’n”,optarg);
break;
case ‘b’:
printf(“option b :bn”);
break;
default:
printf(“other option :%cn”,ch);
}
printf(“optopt +%cn”,optopt);
}
执行 $./getopt –b
option b:b
$./getopt –c
other option:c
$./getopt –a
other option :?
$./getopt –a12345
option a:’12345’
|
非常的简单,知道c语言的主函数里面有参数么 就用那个东西来把参数传进来
然后,你就使用
system("command -param")
这样的命令来调用系统的命令就可以了。恩
然后,你就使用
system("command -param")
这样的命令来调用系统的命令就可以了。恩
|
建议学习shell编程先.
|
可以用shell写