0
我是一名Windows程序員,現在我正在學習在Linux環境下編程,我使用LinuxMint15。linux環境命令行參數
我遇到了一個「奇怪」的問題,命令行參數不是我輸入的。 程序是超級簡單:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("cmd line=");
for(int i=0;i<argc;i++){
printf("%s ", argv[i]);
}
printf("\n");
return 0;
}
然後編譯並運行它,它的作品,因爲我想:
[email protected] ~ $ gcc -o cl test_cl.cpp
[email protected] ~ $ ./cl 1 2
cmd line=./cl 1 2
但是,當我在最後輸入一個*,它的文件夾中列出的所有文件名.....:
[email protected] ~ $ ./cl 1 2 *
cmd line=./cl 1 2 Public Template Video Picture Docs Desktop cl test_cl.cpp test.txt untitled
發生了什麼事?
感謝您的及時答覆,是的,我注意到\\ *的作品,但我不知道是否有某個地方可以改變shell的默認行爲? – roy
不,你不想改變shell的默認行爲。你需要你的shell像其他人(和POSIX標準)一樣行事! –