我想在 tcsh 中有一个变量来保存我的脚本的使用信息,所以在我的脚本中,每当我写 echo $usage 时,它都会打印
my_script
-h : -help
-b : do boo
等`。
有没有办法做到这一点?这可以使用 << EOF 来完成吗?
我尝试过这样的事情,但失败了:
set help = << EOF
my_script
-h : print help
-b : do boo
EOF
谢谢
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 没有功能。)
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