multi-line variable in tcsh

后端 未结 2 1243
太阳男子
太阳男子 2021-01-12 15:08

I want to have variable in tcsh to hold the usage info of my script, so in my script, whenever I write echo $usage, it will print

my_script
  -h : -help
  -         


        
相关标签:
2条回答
  • 2021-01-12 15:41

    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
    
    0 讨论(0)
  • 2021-01-12 15:46
    set help = 'my_script\
      -h : -help\
      -b : do boo'
    
    echo $help:q
    

    Another approach:

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

    But see also: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/

    I've been using csh and tcsh for more years than I care to admit, but I had to resort to trial and error to figure out the first solution. For example, echo "$help" doesn't work; I don't know why, and I doubt that I could figure it out from the documentation.

    (In Bourne shell, you could do it like this:

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

    but csh and tcsh don't have functions.)

    0 讨论(0)
提交回复
热议问题