この方法の回避策として、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
がどのように定義されているかわかりません。
とにかく、誰かがこの置換が機能しない理由を理解できるのではないかと思っていました...そして、TEMP
とOLD
が定義されているときに何が起こっているのかを理解するのに役立つでしょうか?
よろしくお願いします!