Tag: unix

如何使用Bash脚本的密码运行sftp命令?

我需要从Linux主机使用sftp将日志文件传输到远程主机。 我已经从我的操作组提供了相同的凭据。 但是,由于我不能控制其他主机,所以无法与其他主机生成和共享RSA密钥。 那么是否有办法通过cron作业从Bash脚本内部运行sftp命令(提供用户名/密码)? 我发现了一个类似的Stack Overflow问题, 在Bash脚本中指定了sftp的密码 ,但是没有令人满意的答案来解决我的问题。

C Minishell添加pipe道

所以我正在制作一个UNIX minishell,并试图添加pipe道,所以我可以做这样的事情: ps aux | grep dh | grep -v grep | cut -c1-5 不过,我在缠绕pipe道部分时遇到了麻烦。 我把所有的“|” 字符为0,然后将每行作为普通线路运行。 但是,我试图转移输出和input。 一个命令的input需要是前一个命令的输出,一个命令的输出需要是下一个命令的input。 我正在做这个使用pipe道,但是我不知道在哪里调用pipe()以及在哪里closures它们。 从主处理函数processline()中,我有这样的代码: if((pix = findUnquotChar(line_itr, '|'))) { line_itr[pix++] = 0; if(pipe (fd) < 0) perror("pipe"); processline(line_itr, inFD, fd[1], pl_flags); line_itr = &(line_itr[pix]); while((pix = findUnquotChar(line_itr, '|')) && pix < line_len) { line_itr[pix++] = 0; //? if(pipe […]

如何将命令输出作为多个parameter passing给另一个命令

我想把一个命令的每个输出作为多个parameter passing给另一个命令,例如: grep "pattern" input 收益: file1 file2 file3 我想复制这些输出,例如: cp file1 file1.bac cp file2 file2.bac cp file3 file3.bac 我怎样才能一次做到这一点? 就像是: grep "pattern" input | cp $1 $1.bac

如何将Unicode编码的string转换为string

我有一个Unicode编码的string\uXXXX ,我想把它转换成一个普通的字母( UTF-8 )。 例如: String myString = "\u0048\u0065\u006C\u006C\u006F World"; 应该成为 "Hello World" 我知道,当我打印string,它显示Hello world 。 我的问题是我从Unix机器上的文件读取文件名,然后我search它们。 文件名是用Unicode编码的,当我search这些文件时,我找不到它们,因为它search的文件名是\uXXXX 。

有没有办法改变Unix的另一个进程的环境variables?

在Unix上,有没有什么办法可以让一个进程改变别人的环境variables(假设他们都是由同一个用户运行的)? 一般的解决办法是最好的,但如果不是,那么一个是另一个的孩子的具体情况呢? 编辑:如何通过GDB?

Bash工具从文件中获得第n行

有没有一个“规范”的方式呢? 我一直在使用head -n | tail -1 head -n | tail -1这个技巧,但我一直想知道是否有一个Bash工具,专门从文件中提取一行(或一系列的行)。 “规范”是指一个主要function就是这样的程序。

Linux中如何在进程出现分段错误时生成核心转储?

我在Linux中有一个进程出现分段错误的进程。 如何告诉它在失败时生成核心转储?

通过在Bash中的string数组循环?

我想写一个脚本,通过15个string循环(数组可能?)这是可能的吗? 就像是: for databaseName in listOfNames then # Do something end

删除bash中最新的X文件

有一个简单的方法,在一个漂亮的标准UNIX环境中使用bash,运行一个命令来从目录中删除除了最新的X文件以外的所有文件? 为了给出一个更具体的例子,想象一下每个小时cron作业写出一个文件(比如日志文件或者tar-up备份)到一个目录。 我想要一个方法来运行另一个cron作业,它将删除该目录中最旧的文件,直到less于5个。 只是要清楚,只有一个文件存在,它不应该被删除。

用bash设置一个参数

我经常运行一个简单的bash命令: rpm -Uvh –define "_transaction_color 3" myPackage.rpm 哪个工作正常。 但是现在我试图把它编写成一个bash文件,并且使它更加灵活: #!/bin/bash INSTALL_CMD=rpm INSTALL_OPT="-Uvh –define '_transaction_color 3'" ${INSTALL_CMD} ${INSTALL_OPT} myPackage.rpm 但是,这不断产生错误: error: Macro % has illegal name (%define) 错误来自于如何处理–define和引用的_transaction_color 。 我已经尝试了各种各样的转义,不同的措辞,甚至使INSTALL_OPT数组,处理${INSTALL_OPT[@]} 。 到目前为止,我的尝试没有奏效。 显然,我想要的是非常简单的。 我只是不知道如何完成它。 我怎样才能让bash正确处理我的–define参数?