6

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

my_script
  -h : -help
  -b : do boo

等`。

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

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

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

谢谢

4

2 回答 2

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 没有功能。)

于 2011-09-05T18:19:29.303 回答
0

Using '' stops variables being evaluated, not an issue in your case but can be in other situations. To make it a little more readable and allowing the string to be spread over multiple lines I use the following:

#!/bin/tcsh

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

echo $help:q
于 2014-06-10T11:46:06.163 回答