标签: csh

csh脚本中的多个单词列表foreach循环

我有一个Cshell脚本,我正在修改,以具有相关的输入和输出位置.功能都发生在foreach循环中,如下所示:

set INPUT_LOCATION_LIST = "loc1 loc2 loc3 loc4"
foreach location ($INPUT_LOCATION_LIST)
#***Do some stuff ***
end
Run Code Online (Sandbox Code Playgroud)

我希望有一个输出列表,其值不同于输入列表,但是每次迭代都会遍历foreach循环.foreach的人只是

foreach name (wordlist)
Run Code Online (Sandbox Code Playgroud)

作为定义.所以只处理一个.我目前处理它的想法是让wordlist包含输入和输出位置,然后在脚本中解析它:

set INPUT_LOCATION_LIST = "loc1;out1 loc2;out2 loc3;out3 loc4;out4"
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有人有更好的方法来做到这一点.

shell csh

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

在csh中为`ls`创建包含`echo`的别名

我想创建一个别名,在每次使用之前和之后都会添加一个空格ls.如果我只ls使用结果是接近上面和下面的行,我有时会发现读取输出很困难和困惑.所以我开始使用该行:

echo "\n"; ls something ; echo "\n"
Run Code Online (Sandbox Code Playgroud)

有没有办法把它放在别名中,这样每次我都会使用ls命令它会自动添加echo命令?

linux alias csh ls

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

在csh上自我连接字符串

我需要将部分内容从argv连接到我的变量之一。

我将向您展示我的代码:

#!/bin/csh

set stringList = ""
foreach param ($argv)
    if($param !~ TEST) then
        set stringList = $stringList " " $param
    endif
end

echo $stringList > /tmp/prova.txt
Run Code Online (Sandbox Code Playgroud)

当然,txt文件上没有任何内容。有什么办法吗?谢谢。

string shell csh concatenation argv

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

替换!与sed导致事件未找到

我需要将每次出现的!更改:为组文件中的字段分隔符.

sed 's/!/:/g' filename > newfilename 
Run Code Online (Sandbox Code Playgroud)

但我得到错误/: Event not found

csh sed tcsh

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

双空格自动替换为单个空格

我在文件中包含以下命令的文件.

#!/bin/csh -f
echo "test  test"  //echo test [dobule space] test
set a = "test  test"  //set a = test [dobule space] test
echo $a
Run Code Online (Sandbox Code Playgroud)

输出如下.

测试[dobule space]测试

测试[单一空间]测试

当我将值设置为a时,双空格如何被单个空格替换?

任何帮助表示赞赏.

csh

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

如何将项目附加到 csh 列表?

我想创建一个列表,其中包含适用于 csh 中某些条件的字符串。

如何在不预先确定列表或数组的大小的情况下以动态方式添加到列表或数组?

c shell 中是否有 list.add 或类似的东西?

谢谢

csh list

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

如何在.csh脚本中进行三元运算

我想要做

a = $b == howru ? good : not_good;
Run Code Online (Sandbox Code Playgroud)

在c shell脚本中

我尝试使用&&and||运算符,但似乎我犯了一些错误,因为我习惯在 Bash 上工作。

csh

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

!*在tcsh shell中是什么意思?

如命令

myCommand !* &
Run Code Online (Sandbox Code Playgroud)

&是在bg中运行,但是什么是!*?在任何地方都找不到,C shell如今不在任何地方使用...

linux shell command csh

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

尽管 shebang,qsub 仍在 csh 中执行我的 bash 脚本

我想向我大学的 Sungrid 计算集群提交一个 bash 脚本,以循环运行可执行文件。当我登录服务器时,我处于 ​​bash 中:

$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)

我在传递给 qsub 的脚本顶部添加了一个 bash shebang:

$ cat shell_sub
#!/bin/bash
#$ -N bSS_s13
#$ -o logs/bSS_s13.log
#$ -j y
#$ -cwd

echo $SHELL > shell.txt
Run Code Online (Sandbox Code Playgroud)

但是当我提交上面的脚本时:

qsub shell_sub
Run Code Online (Sandbox Code Playgroud)

它而是在 csh 中执行:

$ cat shell.txt
/bin/csh
Run Code Online (Sandbox Code Playgroud)

如何强制 qsub 使用 bash 而不是 csh 执行我的脚本?

bash csh shebang qsub sungridengine

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

列表太长了`ls`命令,CSH

我想ofl在几个目录中获取所有类型文件的列表.我使用了fallowing命令:

ls RESULTS/*/quakesim/iecrud/quake/fgb/stflt/*.ofl
Run Code Online (Sandbox Code Playgroud)

但我收到一条消息:/bin/ls: Argument list too long.有超过1600个这样的文件.有没有办法仍然获得文件列表?

编辑:

我需要文件的路径,而不仅仅是有多少是wc尝试查看我有多少文件而没有用1600+路径"污染"我的屏幕.

csh ls

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

标签 统计

csh ×10

shell ×3

linux ×2

ls ×2

alias ×1

argv ×1

bash ×1

command ×1

concatenation ×1

list ×1

qsub ×1

sed ×1

shebang ×1

string ×1

sungridengine ×1

tcsh ×1