プロが教える店舗&オフィスのセキュリティ対策術

例えば
test.sh:
if [[ $1 =~ ^[0-9]$ ]]
then
echo '1number'
else
echo 'not 1number'
fi

とファイルtest.shを作り
#sh test 9
とdebianで実行すると[[の部分でエラーになります
fedoraやcentosでは問題なくっ実行できます
debianのシェルスクリプトの正規表現の条件文の書き方を教えてください

A 回答 (2件)

もともとは、sh と bash は別物です。

[[ の記述は bash の文法です。

Fedora や CentOS の sh は bash へのシンボリックリンクになっています。

Debian の sh が何か知りませんが、bash で実行すれば動くと思います。

# bash test 9
    • good
    • 0
この回答へのお礼

ありがとうございます
できました

お礼日時:2023/01/20 11:53

ふーん。

私の環境(Debian)ではこんなになりました。

% which sh
/usr/bin/sh
% ls -l /usr/bin/sh
lrwxrwxrwx 1 root root 4 6月 1 2022 /usr/bin/sh -> dash*
%
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!