1

私はUNIXを初めて使用しますが、誰かが「%」の目的を教えてもらえますか?以下のコマンドで:

-bash-3.2$ sample=test123
-bash-3.2$ sample=${sample%?}
-bash-3.2$ echo $sample
test12

最後の文字が削除されていることがわかりますが、3文字など、必要な数の文字を削除できますか。

4

3 に答える 3

2

これはパターン マッチング演算子であり、「パターンが変数の値の末尾に一致する場合、一致する最も短い部分を削除し、残りを返す」ことを意味します。?「任意の 1 文字」に一致するため、最後の文字が削除されます。

?したがって、3 文字を削除する場合は、1 文字ではなく 3 文字に一致する式に置き換える必要があります。

于 2013-03-13T08:58:17.537 に答える
2

%最短後方から削除するbashパラメータ置換演算子です

${var%pattern}

?任意の 1 文字を意味します

于 2013-03-13T09:01:07.260 に答える
1

最初: man 1 bash

構文: ${varname%word} ここで、単語は「一致する接尾辞パターン」であるため、次のことができます。

「123」のみを削除します。

echo ${sample%123}
test

任意の 3 文字を削除します。

echo ${sample%???}
test

于 2013-03-13T08:57:39.760 に答える