标签: tcsh

我如何看到正在运行的tcsh版本?

如何在我的unix终端中看到当前版本的tcsh正在运行?

unix shell version tcsh

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

在tcsh中匹配的字符串/子字符串

我正在努力尝试使用简洁的比较语句来避免一堆"如果a = b或a = c或a = d或a = e"等.

相反,我正试图像在perl中那样使用正则表达式和模式匹配.

设置st ="红色"

这条线

if($ st = ~yellow | blue | red | green)

只是不起作用(如果:表达式语法.)我尝试使用引号,括号,但我没有得到预期的结果,如果没有错误.

有没有办法避免沉重的构造:

if($ st == yellow)|| ($ st == blue)|| ($ st == red)|| ($ st ==绿色)?

或者另一种问同样问题的方法:tcsh是否允许类似"如果字符串a包含字符串b"?我在tcsh引用中找不到任何子字符串的概念.

太感谢了!

string comparison substring tcsh

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

tcsh脚本if语句

我需要遍历一堆不同的场景(变量情景),但无法弄清楚如何在tcsh shell脚本中使用if语句.获取错误"if:Expression Syntax"有人可以告诉我我的错误吗?简化代码如下!谢谢!

#!/bin/tcsh -f
#
set val = 0

foreach scen ( a b )

echo $scen

if ($scen==a) then
  echo $scen
else
  echo $val
endif
end
Run Code Online (Sandbox Code Playgroud)

shell tcsh

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

rm -rf/base-dir-path/*/work与/ base-dir-path/*/*/work不同

如果我想从linux/unix中的给定根目录中删除具有给定名称的所有子目录,您会认为您可以发出如下命令:

rm -rf /base-dir-path/*/work 
Run Code Online (Sandbox Code Playgroud)

但是,在搜索名为"work"的任何子目录时,上面的命令只会深入1个目录.为了实现我想要的,我最终用额外的'*/'重复相同的命令,直到rm返回'rm:No match.',EG:

rm -rf /base-dir-path/*/*/*/work
Run Code Online (Sandbox Code Playgroud)

有没有办法在其通配符搜索中获得rm匹配的命令,/这样我只需要发出一个通配符*

unix shell solaris wildcard tcsh

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

tcsh:如何更改多个文件的文件扩展名?

是否有一行命令tcsh来更改一组文件的扩展名?在各种DOS shell中,我曾经使用过以下内容:

ren *.abc *.def
Run Code Online (Sandbox Code Playgroud)

这将重命名.abc以end 结尾的所有文件,而不是.def.在sed而言,这将执行类似如下:

sed -e 's/\(.\)*\.abc$/\1.def/'
Run Code Online (Sandbox Code Playgroud)

在文件名上.我可能会把零碎的东西放在一起以实现*nix中类似的东西,但我猜这里的问题是我缺乏经验tcsh.

任何帮助赞赏.

regex linux shell tcsh

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

获取unix shell中目录的大小

我是Unix shell环境中编程的新手,我对如何获取目录大小提出了疑问.我读过你可以做的命令如:du,du -b等.但是,当我尝试将它放在我的程序中时,它会以某种方式返回路径名而不是实际的目录大小.这就像连接不起作用或其他东西..garbage文件肯定在我的主目录中,所以我不知道问题是什么.这可能是我忽略的一些愚蠢的错误.如果有任何一双新眼睛或有UNIX经验的人可以为我看看这个我会非常感激!这是我的shell代码:

    #!/bin/tcsh -f

set n = 1

mkdir -p ~/.garbage

while ($n <= $#argv)
 if ( -d $argv[$n] ) then
   echo "$argv[$n] is a directory and cannot be removed"
 else


     mv $argv[$n] ~/.garbage

     echo "The file moved to the garbage directory was: "$argv[$n] "\n"

 endif 
@ n++
end

  echo "The garbage bin's size is: " du ~/.garbage "bytes."
Run Code Online (Sandbox Code Playgroud)

unix size shell tcsh

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

从文件名中仅删除最后一个扩展名

我的文件名看起来与此类似

name_1.23.ps.png
Run Code Online (Sandbox Code Playgroud)

要么

name_1.23.ps.best
Run Code Online (Sandbox Code Playgroud)

要么

name_1.23.ps
Run Code Online (Sandbox Code Playgroud)

我想最后摘下随机文件扩展名,只剩下

name_1.23.ps
Run Code Online (Sandbox Code Playgroud)

与此类似的其他问题使用'。'。作为Delimator,但这会删除name_1之后的所有内容。

我想在命令行(在tcsh或bash中)执行此操作

bash file edit tcsh

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

在tcsh中扩展别名

看起来像是在bash中alias-expand-line

我可以添加到.cshrc_custom文件中的bindkey命令是什么?

相关排序:"^[y"按键绑定指的是什么?我知道^ctrl什么,但是是什么[

alias tcsh expansion

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

在Unix命令行中逐字移动

我工作,tcsh并希望在Unix命令行中向前导航,向后导航.

谷歌搜索显示Alt+ f,Alt+ b向前移动一个单词并向后移动一个单词.但它在Unix命令行上不起作用.有人可以帮忙吗?

unix shell tcsh

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

在反推中强迫支撑扩展或为什么这不一致?

当使用反引号(在perl中)时,我似乎与大括号扩展有某种不一致

print `ls -d ~/{a,b}`;
Run Code Online (Sandbox Code Playgroud)

工作正常,但当我尝试

print `ls -d ~/{a}`;
Run Code Online (Sandbox Code Playgroud)

我明白了:

ls: cannot access /home/user/{a}: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我尝试了各种引用,间距和逃脱但无济于事.我的问题是,有没有办法强制扩张?我意识到如果我自己动起来,我可以一起避免这个问题,但我对这种行为感到好奇

我在bash和tcsh下试过这个.当直接在tcsh下使用时,该命令有效,但在bash下则没有

linux bash shell perl tcsh

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

标签 统计

tcsh ×10

shell ×7

unix ×4

bash ×2

linux ×2

alias ×1

comparison ×1

edit ×1

expansion ×1

file ×1

perl ×1

regex ×1

size ×1

solaris ×1

string ×1

substring ×1

version ×1

wildcard ×1