私はbashスクリプトではかなりabismalだと私は、文字列内のサブストリングのインデックスを検出して返すようにしようとしています-1によって破ら最長一致の検出と言われている部分文字列がバッシュ:私が使用カッコ
が見つかりません与えられたuaeName文字列に「ディスク1」の指標を検出するために、次のコード:
strindex() {
x="${1%%$2*}"
[[ $x = $1 ]] && echo -1 || echo ${#x}
}
index=`strindex "$uaeName" "Disk 1"`
echo "Disk 1 $index"
問題「ディスク1」がuaeNameに存在しないとuaeNameは括弧が含まれている場合に表示されます。
文字列$ uaeNameが
HydroZone v1.0.0 (1994)(Skull Army)(SW).adf
Disk 1 -1
あるしかし、すぐに$ uaeNameはそれだけで失敗したブラケット含まれていると言ったとき、それがうまく機能:
HydroZone v1.0.0 (1994)(Skull Army)(SW)[Blitz BASIC].adf
Disk 1 56
を何とかカッコ[]はuaeNameの内側に誤解しているようですどうすれば問題を解決できますか?
は、あなたの答え[[ "$x" = "$1" ]]
でなければなりません
はあなたが最小限の、検証可能な入力と期待される出力を提供することができますか?あなたの入力文字列は 'Disk 1 'をまったく持っていません。 – Inian