从tcsh中的shell变量中删除尾随空格

时间:2015-01-28 01:55:52

标签: tcsh

我有一个tcsh脚本执行此操作:

  set _iterm2_truncated_prompt=`echo "$prompt" | sed -e 's/ $//'`

但是,对于$ prompt的某些值,这会失败。这是一个极小的(尽管是愚蠢和不切实际的)例子:

set prompt='{['
set _iterm2_truncated_prompt=`echo "$prompt" | sed -e 's/ $//'`

产生错误:

Missing ].

似乎"报价"在`backticks`中被忽略。

创建一个临时文件,这似乎很难以便携和安全的方式进行,这在tcsh中甚至可以做到吗?我希望它适用于$prompt的任何可能值。

我知道最好避免使用csh / tcsh脚本。由于我的一些用户确实使用了tcsh,因此这是一个必要的恶。最终这个脚本必须修改shell的$prompt变量,所以一些tcsh脚本确实是不可避免的。

1 个答案:

答案 0 :(得分:1)

以下命令:

set noglob

将关闭多种替代 - 至少足以满足我在正常使用中期望看到的内容。然后

unset noglob

之后。