tcsh中的多行变量

时间:2011-09-05 08:49:20

标签: csh tcsh

我想在tcsh中有变量来保存我的脚本的使用信息,所以在我的脚本中,每当我写echo echo使用时,它都会打印

my_script
  -h : -help
  -b : do boo

etc`。

有办法做到这一点吗?可以使用<<<< EOF?

我尝试过这样的事情,但失败了:

set help =  << EOF
     my_script 
       -h : print help
       -b : do boo
EOF

感谢

2 个答案:

答案 0 :(得分:8)

set help = 'my_script\
  -h : -help\
  -b : do boo'

echo $help:q

另一种方法:

alias help 'echo "my_script" ; echo "  -h : -help" ; echo "  -b : do boo"'

help

但另请参阅:http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/

我一直在使用csh和tcsh多年,而不是我承认,但我不得不求助于试错来找出第一个解决方案。例如,echo "$help"不起作用;我不知道为什么,我怀疑我可以从文档中找到它。

(在Bourne shell中,你可以这样做:

help() {
    cat <<EOF
my_script
  -h : -help
  -b : do boo
EOF
}

help

但是csh和tcsh没有函数。)

答案 1 :(得分:0)

使用''停止正在评估的变量,在您的情况下不是问题,但可以在其他情况下。为了使它更具可读性并允许字符串分布在多行上,我使用以下内容:

#!/bin/tcsh

set help =      "my_script   \n" 
set help = "$help  -h : -help\n"
set help = "$help  -b : do boo"

echo $help:q