4

この方法の回避策として、VPS にスワップ領域を追加するスクリプトを動作させようとしています。 私はそれが機能していると思っていましたが、今はエラーが発生fakeswap.sh: 5: Bad substitutionするたびに: 実行しようとするたびに: sudo sh fakeswap.sh.

以下は私のコードです:

#!/bin/bash

SWAP="${1:-512}"

NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"

umount /proc/meminfo 2> /dev/null
sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo
mount --bind /etc/fake_meminfo /proc/meminfo

free -m

明らかに、失敗していると思われる置換は次の行にあります。NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"

その行で何が起こるべきかを本当に理解していないと言うのは少し恥ずかしいです(何らかの方法でSWAPのすべての派生物である変数を宣言しているように見えるという事実は別として)。以下の行が新しい定数をダミーの構成ファイルに置き換えていることを収集します (より適切な用語がないため) が、変数TEMPおよびOLDがどのように定義されているかわかりません。

とにかく、誰かがこの置換が機能しない理由を理解できるのではないかと思っていました...そして、TEMPOLDが定義されているときに何が起こっているのかを理解するのに役立つでしょうか?

よろしくお願いします!

4

1 に答える 1