【问题标题】:Remove trailing space from shell variable in tcsh从 tcsh 中的 shell 变量中删除尾随空格
【发布时间】:2015-01-28 01:55:52
【问题描述】:

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

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

但是,对于 $prompt 的某些值,这将失败。这是一个最小的(虽然愚蠢和不切实际)的例子:

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

产生错误的原因:

Missing ].

似乎“引号”在“反引号”中被忽略了。

没有创建临时文件,这似乎很难以可移植和安全的方式完成,这甚至可以在 tcsh 中完成吗?我希望它适用于$prompt 的任何可能值。

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

【问题讨论】:

    标签: tcsh


    【解决方案1】:

    以下命令:

    set noglob
    

    将关闭多种替换 - 至少足以满足我在正常使用中看到的期望。那么

    unset noglob
    

    之后。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 2015-02-15
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 2012-01-03
      • 2017-01-29
      相关资源
      最近更新 更多