小编Ani*_*ack的帖子

使用 shell 重置变量

我使用 shell 脚本来重置变量。

 #!/bin/sh 
reset_var() { 
while [ "$#" -gt "0" ] do  
 echo "\$1 is $1"   
unset $1 done 
} 

i=50  
j= 40 
reset_var i j
Run Code Online (Sandbox Code Playgroud)

但这不起作用!

目的是将 i 和 j 变量重置为 0

有什么办法可以重置许多变量!

shell ash

2
推荐指数
1
解决办法
9293
查看次数

如何在c中使用宏释放指针

我想在c代码中编写宏来释放许多像这样的指针:

FREE(ptr1, ptr2, ptr3, ptr4, ptrx);
Run Code Online (Sandbox Code Playgroud)

对我来说,这比

 FREE(ptr1); 
 FREE(ptr2);
 FREE(ptr3);
 FREE(ptr4);
 FREE(ptrx);
Run Code Online (Sandbox Code Playgroud)

提前致谢

问候,

c free

1
推荐指数
1
解决办法
844
查看次数

将许多文件的内容复制到一个文件中

我有很多文件,我想将这些文件的内容复制到一个文件中.如何使用linux命令.

例如:

folder1\text1.txt
folder1\text2.txt
folder1\text3.txt
folder1\text5.txt
folder1\text4.txt
folder1\text6.txt
etc
Run Code Online (Sandbox Code Playgroud)

将所有文件的内容复制到 folder1\text.txt

谢谢

linux

0
推荐指数
1
解决办法
3158
查看次数

使用 Ncurses 绘制框

我目前正在尝试使用 ncurses 绘制一组框。此时我有代表这些框的长度和宽度的变量。一件事是我不允许使用像“ WINDOW * win = newwin(10, 10, 1, 1);”这样的命令。

如果我可以提供任何其他信息来帮助您帮助我,请告诉我。

c ncurses

0
推荐指数
1
解决办法
3078
查看次数

使用tcl执行sed命令时出错

我使用的文件包含如下行:

first0.1.second1.1.third1 
first0.1.second2.2.third1
first0.n.second2.n.third1  
Run Code Online (Sandbox Code Playgroud)

我想替换".n." "{j}"// n属于[1-100]

所以所需的行如下所示:

first0.{j}.second1.{j}.third1 
first0.{j}.second2.{j}.third1
Run Code Online (Sandbox Code Playgroud)

我在tcl下使用以下命令

exec sed -i 's/\.[1-9]\./\.{j}\./g' file
Run Code Online (Sandbox Code Playgroud)

但我明白了

invalid command name "1-9"
Run Code Online (Sandbox Code Playgroud)

我怎么能做这个替换?

sed tcl

0
推荐指数
1
解决办法
48
查看次数

检查字符串是否以TCL结尾的特定字符的最有效方法是什么?

我想检查这个字符串模式是否"name.{j}.name.{i}.param""{i}.param"

tcl

0
推荐指数
1
解决办法
1017
查看次数

从csv文件中提取电子邮件地址

我想从csv文件中提取所有电子邮件地址.怎么做这个动作.顺便说一下,电子邮件的位置不是按列或按行组织的.

实际上没有常规格式,但我举个例子

 "bla bla bla bla Website: www.mysite.com ; Email: information@email.com";usa; 
Run Code Online (Sandbox Code Playgroud)

所以问题是如何从这句话中提取电子邮件地址?

linux shell

-1
推荐指数
1
解决办法
2434
查看次数

在c程序中捕获Ctrl + c

我使用以下代码来捕获我的C程序中的Ctrl+ C:

   void sig_handler(int signo)
{

    if (signo == SIGINT) 
        exit(EXIT_SUCCESS);
}


void main ()
{
    ......

    if(signal(SIGINT, sig_handler)== SIG_ERR) 
        {
            printf(">>>>>>>>>>>>>>>>>>>>> SIG INT EROOR !!!! sigint=%d ID=%d \n",SIGINT, getpid());
        }
        else 
            printf(">>>>>>>>>>AFTER>>>>>>>>>>> SIG INT  sigint=%d PID=%d \n",SIGINT, getpid());


char *buf = NULL;
asprintf(&buf, "%d", getpid());
write(fd, buf, strlen(buf));
free(buf);
uloop_run(); //entering main loop

ubus_exit();
uloop_done();

xml_exit();
config_exit();

free(tmp);

closelog();

log_message(NAME, L_NOTICE, "exiting\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的目的是捕捉Ctrl + C但似乎信号处理程序(sig_handler)不运行!怎么解决?

c linux openwrt

-2
推荐指数
1
解决办法
2040
查看次数

标签 统计

c ×3

linux ×3

shell ×2

tcl ×2

ash ×1

free ×1

ncurses ×1

openwrt ×1

sed ×1