我有一个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)
所以我想知道是否有人有更好的方法来做到这一点.
我想创建一个别名,在每次使用之前和之后都会添加一个空格ls.如果我只ls使用结果是接近上面和下面的行,我有时会发现读取输出很困难和困惑.所以我开始使用该行:
echo "\n"; ls something ; echo "\n"
Run Code Online (Sandbox Code Playgroud)
有没有办法把它放在别名中,这样每次我都会使用ls命令它会自动添加echo命令?
我需要将部分内容从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文件上没有任何内容。有什么办法吗?谢谢。
我需要将每次出现的!更改:为组文件中的字段分隔符.
sed 's/!/:/g' filename > newfilename
Run Code Online (Sandbox Code Playgroud)
但我得到错误/: Event not found?
我在文件中包含以下命令的文件.
#!/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 中某些条件的字符串。
如何在不预先确定列表或数组的大小的情况下以动态方式添加到列表或数组?
c shell 中是否有 list.add 或类似的东西?
谢谢
我想要做
a = $b == howru ? good : not_good;
Run Code Online (Sandbox Code Playgroud)
在c shell脚本中
我尝试使用&&and||运算符,但似乎我犯了一些错误,因为我习惯在 Bash 上工作。
如命令
myCommand !* &
Run Code Online (Sandbox Code Playgroud)
&是在bg中运行,但是什么是!*?在任何地方都找不到,C shell如今不在任何地方使用...
我想向我大学的 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 执行我的脚本?
我想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+路径"污染"我的屏幕.