私はUNIXを初めて使用しますが、誰かが「%」の目的を教えてもらえますか?以下のコマンドで:
-bash-3.2$ sample=test123
-bash-3.2$ sample=${sample%?}
-bash-3.2$ echo $sample
test12
最後の文字が削除されていることがわかりますが、3文字など、必要な数の文字を削除できますか。
私はUNIXを初めて使用しますが、誰かが「%」の目的を教えてもらえますか?以下のコマンドで:
-bash-3.2$ sample=test123
-bash-3.2$ sample=${sample%?}
-bash-3.2$ echo $sample
test12
最後の文字が削除されていることがわかりますが、3文字など、必要な数の文字を削除できますか。
これはパターン マッチング演算子であり、「パターンが変数の値の末尾に一致する場合、一致する最も短い部分を削除し、残りを返す」ことを意味します。?
「任意の 1 文字」に一致するため、最後の文字が削除されます。
?
したがって、3 文字を削除する場合は、1 文字ではなく 3 文字に一致する式に置き換える必要があります。
%
最短後方から削除するbashパラメータ置換演算子です
${var%pattern}
?
任意の 1 文字を意味します
最初: man 1 bash
構文: ${varname%word} ここで、単語は「一致する接尾辞パターン」であるため、次のことができます。
「123」のみを削除します。
echo ${sample%123}
test
任意の 3 文字を削除します。
echo ${sample%???}
test
等