CotEditor icon indicating copy to clipboard operation
CotEditor copied to clipboard

[highlight][Bash] パラメータ拡張 ${#param} の `#` が行コメントと解釈される

Open charonferry opened this issue 6 years ago • 3 comments

Bash のパラメーター拡張に ${#param} があり、"param 変数の文字数" が取得できます。

#!/bin/bash

param="test"
echo ${#param}

環境設定 > フォーマット で回避可能でしょうか? 可能でしたら設定方法を教示頂きたく、よろしくお願いします。

charonferry avatar Feb 09 '19 17:02 charonferry

同様に $# があり、"シェルスクリプトのパラメータの数" が取得できます。

if [ $# -eq 0 ]; then
    :
fi

また、${#param[@]} では、"param 配列の要素数" が取得できます。

array=("item1" "item2" "item3")
echo ${#array[@]}

こちらも行コメントと解釈されるので、回避したく。

charonferry avatar Feb 09 '19 17:02 charonferry

これについては、すみません、現時点では「仕様です」という回答となり迂回方法もないです。 シンタックス定義については私が引き継ぐ前からの歴史的経緯が大きく現在の仕様となっているのですが、そろそろ限界かと思っているので今後(といっても今年中にできるかどうか怪しいレベル)大きく改変する予定です。そのときにこの辺りもカバーできればと考えています。

1024jp avatar Feb 10 '19 14:02 1024jp

承知しました。

多種多様な言語があり、先人も含めて開発者の得意不得意な言語があれば、 特定の言語に対する不備も一時的には仕方ないと思っていますので。 気長にお待ちしております。

charonferry avatar Feb 10 '19 14:02 charonferry