黑客基础知识(5)
时间:2026-01-19
时间:2026-01-19
很棒
第一个字符的的偏移
量改为 size - 1 而不是 size。这是因为
string2 的大小为 12, 但起始偏移量是 0, 串内的字符从偏移量 0 到 偏移量 10, 偏移量 11 为空字符
保留。
为了使代码正常工作有很多种修改办法。 。一种是另设一个比串的实际大小小 1 的变量,下面是这
种办法的程序。
#include < stdio.h>
main ()
{
char my_string[] = “hello there”;
my_print (my_string);
my_print2 (my_string);
}
my_print (char *string)
{
printf (“The string is %s”, string);
}
my_print2 (char *string)
{
char *string2;
int size, size2, i;
size = strlen (string);
size2 = size -1;
string2 = (char *) malloc (size + 1);
for (i = 0; i < size; i++)
string2[size2 - i] = string[i];
string2[size] = `0';
printf (“The string printed backward is %s”, string2);
}
二 Linux SHELL编程
SHELL编程是指写一个包含一系列UNIX命令的程序,这个程序可以在命令行运行。用下面的命令何以
执行一个SHELL程序:
方式一
$ sh cmd.file
方式二
$ . cmd.file;
方式三
$ chmod u+x cmd.file
$ cmd.file
怎样创建和运行一个SHELL脚本
在一个编辑器里,写入一系列UNIX命令,举个例子:
echo This is a shell program
echo Today I am going to
echo $1 $2 $3 $4 $5 $6 $7 $8 $9
保存这个文件,命名为ex1。然后用下列命令“chmod 700
ex1”,将该文件变为可执行文件。做完上述个步骤之后,就好了。如果要看运行这个文件会出现什么结
果,可以在命令行状态下键入:ex1 coffee bar in
hangzhou。
上述程序中最后一行就是将ex1命令中的单词读入内存,同样将第二个等等。$1代表第一个单词,$2
代表第二个。
可见,SHELL程序的目的是能批量处理命令,从而完成一些比较复杂的工作。
不同的SHELL有不同的启动文件,比如:
bash: .profile
sh: .profile
csh: .cshrc
tcsh: .cshrc
zsh: $ZDOTDIR/.zprofile and/or $ZDOTDIR/.zshrc
所有的这些启动文件都要读入。login和。logout文件。
SHELL程序设计
注释
操作符“#”引入注释。
if 操作符
语法
if [ 条件表达式 ]
then
命令序列
fi
或
if [ 条件表达
式 ]
then
命令序列
else
命令序列
fi
数值操作符
= 等于
-n 不等于
-gt 大于
-lt 小于
-le 小于等于
exit 命令
用于结束SHELL脚本。可以带一个返回值。
expr