我正在尝试编写一个shell脚本,在运行时,将设置一些将在调用者的shell中保留的环境变量.
setenv FOO foo
Run Code Online (Sandbox Code Playgroud)
在csh/tcsh中,或
export FOO=foo
Run Code Online (Sandbox Code Playgroud)
在sh/bash中只在脚本执行期间设置它.
我已经知道了
source myscript
Run Code Online (Sandbox Code Playgroud)
将运行脚本的命令而不是启动新的shell,这可能导致设置"调用者"环境.
但这里有一个问题:
我希望这个脚本可以从bash或csh调用.换句话说,我希望任何一个shell的用户都能够运行我的脚本并改变他们的shell环境.所以'source'对我来说不起作用,因为运行csh的用户无法获取bash脚本,而运行bash的用户无法获取csh脚本.
有没有合理的解决方案不需要在脚本上编写和维护两个版本?
ab -n 1 -c 1 http:// localhost:2020/welTo.do?pxtId = 3000007937&superDo = jack
我得到第一个查询字符串的答案,但我也得到了
'superDo'不被识别为内部或外部命令,可操作程序或批处理文件.
请帮我
TIA
关心thiru
我正在尝试编写简单的客户端和服务器C程序,在不同的终端中相互通信.
服务器必须创建公共fifo并等待客户端.与此同时,客户端正在创建自己的fifo,服务器的响应将通过该fifo来实现.客户端的任务是向服务器发送队列创建的名称,并返回ls命令的结果.
我确实搜索了一个答案,例如:fifo-server-program,example-of-using-named-pipes-in-linux-bash,how-to-send-a-simple-string-between-two-programs-使用管道.我从第三个链接的代码开始,慢慢修改它.
我现在得到的是一个客户端从用户那里获取输入,将其发送到服务器并将其接收回来.但它只能工作一次.我不知道为什么.主要功能的主体在下面.我将不胜感激任何帮助.
编辑: 我搞定了!:D代码在下面,也许它会帮助某人.
server.c代码:
#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
int main(int argc, char* argv[])
{
int fds[2];
char tab[BUFSIZ];
int fd, n;
char *myfifo = "/tmp/serwer";
char *myfifo2 = "/tmp/client";
pipe(fds);
mkfifo(myfifo,0666);
while(1)
{
fds[0]=open(myfifo2,O_RDONLY);
fds[1]=open(myfifo,O_WRONLY);
read(fds[0],tab,BUFSIZ);
if (strcmp("klient",tab)==0) {
printf("Od klienta: %s\n",tab);
fd=open(tab,O_WRONLY);
if(fork()==0)
{
dup2(fds[1],1);
close(fds[1]);
execlp("ls","ls","-l",NULL);
close(fds[0]);
close(fds[1]);
}
else
{
dup2(fds[0],0);
n = read(fds[0],tab,BUFSIZ);
write(fd,tab,n);
close(fds[0]);
close(fds[1]);
}
}
memset(tab, …Run Code Online (Sandbox Code Playgroud) stdout我正在处理一个脚本,它首先调用一个嘈杂的(对和)程序进行大量诊断stderr,然后使用其他工具处理其输出。
该程序的冗长使得不可能简单地将其标准输出发送到管道,因此目前我们使用临时文件——我想结束这种做法。
我们可以/tmp/foo要求程序将数据写入,而不是写入 - 它会,没有问题(例如,/dev/fd/N它不需要文件)。seek
stdout它当前发送到和的噪音stderr可以继续到那里——操作员已经习惯了看到它,并且如果它消失就会感到震惊......
但是我如何安排描述符N存在并发送到下一个程序中stdin?
noisy -o /dev/fd/N ?????| filter -i /dev/stdin
Run Code Online (Sandbox Code Playgroud)
如果这需要bash,那就这样吧,但当然,我更喜欢适合整个 sh 系列的解决方案。
我尝试使用.import,但它似乎限制了csv和分隔文件.是否可以导入gzip文件?或者至少从命令行管道?
另外,我可以跳过像mysql"LOAD DATA INFILE"这样的不想要的列吗?