我试图在启动时运行以下bash脚本(来自/etc/rc.local),但由于以下语法错误,脚本无法运行:
+1") syntax error: invalid arithmetic operator (error token is ''
以下是完整的
脚本#!/bin/bash
distro=$(cat /etc/issue | head -n 2 | tr -d "\n" | tr "[:upper:]" "[:lower:]")
device=$(fdisk -l | grep -w 8e | head -n 1 | cut -c-8)
partcount=$(fdisk -l | grep $device | sed 1d | grep -c $device)
newpartnum=$(($partcount+1))
startsector=$(fdisk -l | grep -w 8e | tail -1 | tr " " "\n" | sed "/^$/d" | head -n 3 | tail -1)
newstartsector=$(($startsector+1))
endsector=$(fdisk -l | grep sectors | head -n 1 | tr " " "\n" | tail -2 | head -n 1)
newendsector=$(($endsector-1))
fdisk $device <<EOF
n
p
$newpartnum
$newstartsector
$newendsector
t
$newpartnum
8e
w
EOF
sed -i'.bak' '/00resize/d' /etc/rc.local
echo "sh /root/01setup.sh" >> /etc/rc.local
#reboot
我假设错误是$(($ partcount + 1))或$(($ startsector + 1))但我不确定如何。
答案 0 :(得分:1)
我的猜测是您通过在Windows上编辑bash脚本引入了一个或多个 CR 代码。尝试通过dos2unix
运行脚本,看看问题是否消失。
(如果您没有dos2unix
,可以尝试tr -d \\r <script >newscript
)