|
あくつです。
>> UNIX 系シェルについては、基本は「#」から行末までがコメントで、私の
>> 知っている例外は、
>> (1) 文字列
>> 「"」若しくは「'」で括られた部分
>> (2) ファイル先頭で「#!」ではじまる場合
>> コメントとして扱っても実際は困らないと思う
>> です。
>
>これはシェルの種類にもよって大きく左右される問題でして…
>sh/bash 系と csh/tcsh 系ではけっこう文法が違います。
>
>少なくとも csh/tcsh 系では $#hoge とか ${#hoge} とかいう書き方が存在します。
>
>私自身は色分け機能は使わないので積極的にテストに協力できなくて申し訳ない
>のですが、
> $# はコメントではない
> ${…} の中の # もコメントではない
>ということでよろしくお願いいたします。
bash で関係する部分だけ書きます。
$ echo " # is in a string."
# is in a string.
$ echo \" # comment
"
$ var=abcXYZabc
$ echo ${var#[a-z]}
bcXYZabc
$ echo ${var#*[A-Z]}
YZabc
$ echo ${var##*[A-Z]}
abc
$ echo ${var/%abc/---}
abcXYZ---
$ echo ${var/#abc/---}
---XYZabc
$ echo {a,b,c}\${#,$,@}
a${#,$,@} b${#,$,@} c${#,$,@}
$ num=ff
$ echo $(( 16#$num ))
255
$ echo $(( 2#11111111 ))
255
$ echo {a,b,c}\#{x,y,z}
a#x a#y a#z b#x b#y b#z c#x c#y c#z
$ echo {a,b,c}#{x,y,z}
a#x a#y a#z b#x b#y b#z c#x c#y c#z
$ echo {a,b,c}{#,$,@}
a# a$ a@ b# b$ b@ c# c$ c@
$ cat a.sh
#!/usr/bin/env bash
cat <<*EOD*
# in a string.
*EOD*
$ ./a.sh
# in a string.
$ cat b.sh
#!/usr/bin/env bash
cat <<**EOD** # hello
world
**EOD**
$ ./b.sh
world
$ cat c.sh
#!/usr/bin/env bash
cat << .
Hello $USER
.
$ ./c.sh
Hello ta
$
|
|