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 シェルでは、次のように実行できます。

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

help

ただし、csh と tcsh には機能がありません。)

于 2011-09-05T18:19:29.303 に答える
0

あなた''のケースでは問題ではありませんが、他の状況では問題になる可能性があります。もう少し読みやすくし、文字列を複数行に分散できるようにするために、次を使用します。

#!/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 に答える