标签: csh

更改父shell的目录

我想知道可以用来从子shell更改父shell的目录的任何机制.例如,我在$ HOME中运行脚本"settings.sh".我的$ HOME有一个目录$ HOME/TEST/run.如果我的"settings.sh"脚本如下所示

    #!/bin/bash

    # some shell related code
    # some shell related code

    cd $HOME/TEST/run

    exit 0
Run Code Online (Sandbox Code Playgroud)

我在$ HOME的命令提示符下执行上面的脚本.执行后,我希望我的命令提示符在目录$ HOME/TEST/run中.我明白在子shell中,它正在被cd到$ HOME/TEST/run,但是在执行结束时,它又回到了$ HOME.

使用单个脚本是否有任何优雅的方法来完成上述操作.一种方法是修改脚本"settings.sh"以生成另一个脚本,然后使用".$ HOME/generatedScript.sh"

bash csh tcsh sh

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

如何检查正在运行的shell?

我需要检查脚本是否正在运行bashcsh.

#!/bin/csh

if ( `echo $SHELL` != '/bin/tcsh' )
   echo 'Please run it in csh' 
   exit
endif
Run Code Online (Sandbox Code Playgroud)

这段代码给出了

bash: g.csh: line 7: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

bash shell csh

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

使用linux csh脚本在许多子目录中执行makefile

我正在尝试编写一个csh脚本,它将在子目录中执行makefile.到目前为止我有这个:

find -maxdepth 2 -name 'Makefile' -print -execdir make \;

我遇到的问题是当我尝试运行它时出现以下错误:

find: The current directory is included in the PATH environment variable, which is insecure in combination with the -execdir action of find. Please remove the current directory from your $PATH (that is, remove "." or leading or trailing colons)

在这种情况下,我无法合理地更改$ PATH变量.关于变通方法的任何想法.

非常感谢和愉快的编码

linux shell scripting csh makefile

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

具有可变数量参数的 csh 别名

我想创建一个 csh 别名,如果不带参数调用,则执行一个操作;如果使用单个参数调用,则执行第二个操作。有谁知道如何做到这一点?(尝试引用未传递的参数会触发错误)。

alias csh

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

我可以将字符串从perl传递回调用的c-shell吗?

RHEL6

我有一个运行perl脚本的c-shell脚本。在将大量的东西转储到stdout之后,它确定perl脚本完成时父shell应当安装到的目录(目录)。但这是一个字符串,而不是一个整数,这就是我可以通过“ exit()”返回的全部。

现在,将dir的名称存储在c-shell脚本可以读取的文件中。它有效,但不优雅。有一个更好的方法吗 ?也许我可以与perl脚本共享一些内存?

perl csh

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

继续收到“Else: endif not found”。错误

这是我的脚本的提示:询问用户“你还好吗?”的脚本

如果用户回答 y 或 Y,则说“很高兴听到它”,否则如果用户输入 n 或 N,则打印“对不起,你感觉不舒服”。如果用户输入其他字符,则打印不正确的选项并再次提问。

这是我所拥有的:

#! /bin/csh
echo "Are you OK? "
set n = $<
set loop = 1
if (("$n" == "y") || ("$n" == "Y")) then
    echo "glad to hear it"
else if (("$n" == "n") || ("$n" == "N")) then
    echo "sorry that you are not feeling good"
else
    echo "in-correct choice"
    while ( $loop == 1 )
      echo "Are you OK? "
      set n = $<
      if (("$n" == "y") || …
Run Code Online (Sandbox Code Playgroud)

linux csh

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

为什么尾巴在这里不起作用?

我的csh脚本

#!/bin/csh
# C-schell script to increase the boundingbox....

echo '%\!PS-Adobe-3.0 EPSF-3.0'
echo '%%BoundingBox: 0 0 1100 1100'
tail +3 $argv[1]
Run Code Online (Sandbox Code Playgroud)

叫这里

csh bbox.csh plt >! plt_P1.ps
Run Code Online (Sandbox Code Playgroud)

但是我有

csh -f bbox.csh plt
tail: cannot open ‘+3’ for reading: No such file or directory
Run Code Online (Sandbox Code Playgroud)

该怎么tail办?编写代码的人使用Darwin,我在Ubuntu 14.04上.

linux bash csh

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

标签 统计

csh ×7

bash ×3

linux ×3

shell ×2

alias ×1

makefile ×1

perl ×1

scripting ×1

sh ×1

tcsh ×1