Tag: csh

将stderrredirect到c shell中的stdout

当我在csh中运行下面的命令时,我什么都没有,但是它在bash中有效,在csh中是否有任何等价物可以将标准错误redirect到标准输出? xxx 2>&1 注意:xxx是一个无效的命令,我只是想让错误看到输出。

在运行时编辑shell脚本

你可以在运行的时候编辑一个shell脚本,并且这些改变会影响正在运行的脚本吗? 我对csh脚本的具体情况感到好奇,我有批处理运行一堆不同的构build口味,并运行一整夜。 如果中间操作发生,我想进去添加额外的命令,或者注释掉未执行的命令。 如果不可能的话,是否有任何shell或批处理机制可以让我这样做? 当然,我已经尝试过了,但是在我看到它是否有效之前还需要几个小时,而且我很好奇在幕后发生了什么或者没有发生什么。

shell脚本可以设置调用shell的环境variables吗?

我正在尝试编写一个shell脚本,在运行时将设置一些环境variables,这些variables将保留在调用者的shell中。 setenv FOO foo 在csh / tcsh中,或者 export FOO=foo 在sh / bash中只在脚本执行期间设置它。 我已经知道了 source myscript 将运行脚本的命令,而不是启动一个新的shell,这可能导致设置“调用者”的环境。 但是这是一个难题: 我希望这个脚本可以从bash或者csh中调用。 换句话说,我希望任何一个shell的用户都能够运行我的脚本并改变shell的环境。 所以'源'不适合我,因为运行csh的用户不能获得bash脚本,而运行bash的用户不能获得csh脚本。 是否有任何合理的解决scheme,不涉及编写和维护脚本上的两个版本?

如何避免在csh中复制pathvariables

通常在你的cshrc文件中有这样的设置path: set path = ( . $otherpath $path ) 但是,当您多次获取您的cshrc文件时,path会被复制,您如何防止重复? 编辑:这是一个不干净的方式做到这一点: set localpaths = ( . $otherpaths ) echo ${path} | egrep -i "$localpaths" >& /dev/null if ($status != 0) then set path = ( . $otherpaths $path ) endif

Linux:在同一行上的特定单词之后提取一个单词

我是一个新的Linux用户,我是自学的,所以我很抱歉,如果这个问题是愚蠢的。 我在网上search,但无法find一个正确的答案..我怎样才能提取一个字在Linux(csh)的特定单词后? 更确切地说,我有一个文件,其中有一行看起来像这样的文件: [一些无用的数据] –pe_cnt 100 –rd_cnt 1000 [更多数据] 我想提取–pe_cnt字之后的数字100 。 我不能使用'sed',因为只有当你想要提取整行时才有效。 也许我可以用'awk'? 此外,我有多个文件有不同的值而不是100,所以我需要的东西,提取的价值,但不依赖于价值。

可以传递给SQL * Plus(从Linux C Shell)的命令行参数的最大长度?

我从Linux C Shell调用SQL * Plus: sqlplus username/password @file.sql var1 var2 var3 如果我传递一个string作为var1 ,这个string可以多久? 是由操作系统pipe理? 在这种情况下: Linux version 2.6.9-100.ELsmp (mockbuild@x86-010.build.bos.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Tue Feb 1 12:17:32 EST 2011 更新:经验testing产生以下结果: 5200个字符的命令行参数给出错误“Word太长”。 1300个字符,然后产生SQL * Plus错误,“string开始”(000796384 …“太长,最大大小为239个字符。 一旦我得到239字,一切都很好。 我想我会用sqlldr来克服这个问题。

如何确定我正在工作的当前shell?

我如何确定我正在使用的当前shell? ps命令的输出是否足够? 这怎么能在不同的UNIX中完成呢?

让ssh在目标机器的后台执行一个命令

这是一个关于如何在shell脚本中使用ssh的后续问题? 题。 如果我想在该机器的后台运行的远程机器上执行命令,如何获得ssh命令返回? 当我试图在命令的末尾添加&符号(&)时,它会挂起。 命令的确切forms如下所示: ssh user@target "cd /some/directory; program-to-execute &" 有任何想法吗? 有一件事要注意的是,login到目标机器总是产生一个文本横幅,我有SSH密钥设置,所以不需要密码。