Linux 无法在bash脚本中使用参数nb10

Linux 无法在bash脚本中使用参数nb10,linux,bash,variables,parameters,limit,Linux,Bash,Variables,Parameters,Limit,我可以传递到bash脚本中的参数数量有限制吗?似乎nb 9工作良好,而nb10则被忽略 我尝试使用audio={10} 因为我在某个地方读过,但这似乎也不起作用 调用(来自本地php文件): bash脚本 #!/bin/bash cd /var/sync #width=`/bin/cat size|/bin/sed 's/\([0-9]*\)\x\([0-9]*\)/\1/'` #height=`/bin/cat size|/bin/sed 's/\([0-9]*\)\x\([0-9]*\)/\

我可以传递到bash脚本中的参数数量有限制吗?似乎nb 9工作良好,而nb10则被忽略

我尝试使用audio={10}

因为我在某个地方读过,但这似乎也不起作用

调用(来自本地php文件):

bash脚本

#!/bin/bash
cd /var/sync
#width=`/bin/cat size|/bin/sed 's/\([0-9]*\)\x\([0-9]*\)/\1/'`
#height=`/bin/cat size|/bin/sed 's/\([0-9]*\)\x\([0-9]*\)/\2/'`
width=1920
height=1080
gwidth=$6
gheight=$7
nwidth=$2
nheight=$3
oposx=$4
oposy=$5
nwidth=$gwidth
fsfile="/usr/share/nginx/www/cloudsign_local/video/keepFullscreen"
#echo $*>/home/brftv/testkommando

nheight=`eval expr $nwidth \\\* $height / $width`
if [ $nheight -gt $gheight ]
  then
    nheight=$gheight
    nwidth=`eval expr $nheight \\\* $width / $height`
fi
posy=`eval expr $oposy + $gheight / 2 - $nheight / 2`
posx=`eval expr $oposx + $gwidth / 2 - $nwidth / 2`

fullscreen=$8
vcodec=$9
audio=${10}

echo audio>/home/brftv/tiovar
#prints an empty file!!! a bool is passed, should always be 0 or 1...

case $audio in
  1)
defflags="-display :0 -x $nwidth -y $nheight -vo vdpau -ao alsa:device=hw=1.7 -nograbpointer -geometry $posx:$posy -nolirc -nortc -noconsolecontrols -nojoystick -slave -noborder -ontop"
;;
  0)
defflags="-display :0 -x $nwidth -y $nheight -vo vdpau -nosound -nograbpointer -geometry $posx:$posy -nolirc -nortc -noconsolecontrols -nojoystick -slave -noborder -ontop"
;;
esac

#ARK active audio -ao alsa:device=hw=1.7
#defflags="-display :0 -x $nwidth -y $nheight -vo vdpau -geometry $posx:$posy -really-quiet -nolirc -nojoystick -slave -noborder -ontop -ss 130"

vcodec=`echo $vcodec | tr '[A-Z]' '[a-z]'`
case $vcodec in
ffh264|ffwmv3|ffmpeg12|ffvc1)
vcodec=${vcodec}vdpau
mplflags="$defflags -vc $vcodec"
;;
h264|H264|vc1|VC1|wmv3|WMV3|mpeg12|MPEG12)
vcodec=ff${vcodec}vdpau
mplflags="$defflags -vc $vcodec"
;;
*)
mplflags="$defflags"
;;
esac

case $fullscreen in
  1)
    DISPLAY=:0 /usr/bin/xdotool key Ctrl+F2
    /usr/bin/mplayer $mplflags -fs $1
    echo "/usr/bin/mplayer $mplflags -fs $1">/tmp/mplayer
    if [ -f "$fsfile" ]; then
    echo "fullscreen file not found"
    else
    #DEBUG /usr/bin/mplayer $mplflags -fs /home/brftv/videos/cosmopolis_trlr_01_1080p_dl.mov
    DISPLAY=:0 /usr/bin/xdotool key Ctrl+F1
    fi
;;
  0)
    /usr/bin/mplayer $mplflags $1
    echo "mplayer $mplflags $1"
;;
esac

注意:在我添加第10个参数之前工作得很好…

audio=${10}
是正确的。正如
bash
手册所述:

当展开由多个单个数字组成的位置参数时,必须将其括在大括号中(请参见下面的展开)

错误是在该行之后的一行:

echo audio>/home/brftv/tiovar
应该是:

echo "$audio" > /home/brftv/tiovar
您忘记了
$

我不知道你为什么会得到一个空文件,你应该得到一个有“音频”字样的文件


顺便说一句,在将URL参数放入命令行时,应该使用escapeshellarg,否则您将面临一些严重的注入问题。

audio=${10}
是正确的。正如
bash
手册所述:

当展开由多个单个数字组成的位置参数时,必须将其括在大括号中(请参见下面的展开)

错误是在该行之后的一行:

echo audio>/home/brftv/tiovar
应该是:

echo "$audio" > /home/brftv/tiovar
您忘记了
$

我不知道你为什么会得到一个空文件,你应该得到一个有“音频”字样的文件


顺便说一句,在将URL参数放入命令行时,应该使用escapeshellarg,否则您将面临一些严重的注入问题。

audio=${10}
是正确的。正如
bash
手册所述:

当展开由多个单个数字组成的位置参数时,必须将其括在大括号中(请参见下面的展开)

错误是在该行之后的一行:

echo audio>/home/brftv/tiovar
应该是:

echo "$audio" > /home/brftv/tiovar
您忘记了
$

我不知道你为什么会得到一个空文件,你应该得到一个有“音频”字样的文件


顺便说一句,在将URL参数放入命令行时,应该使用escapeshellarg,否则您将面临一些严重的注入问题。

audio=${10}
是正确的。正如
bash
手册所述:

当展开由多个单个数字组成的位置参数时,必须将其括在大括号中(请参见下面的展开)

错误是在该行之后的一行:

echo audio>/home/brftv/tiovar
应该是:

echo "$audio" > /home/brftv/tiovar
您忘记了
$

我不知道你为什么会得到一个空文件,你应该得到一个有“音频”字样的文件


顺便说一句,在将URL参数放入命令行时,您应该使用escapeshellarg,否则您将面临一些严重的注入问题。

eval
对于数学来说是不必要的。使用
nheight=$(expr$nwidth\*$height/$width)
;或者更好的是,
nheight=$($nwidth*$height/$width))
eval
对于数学来说是不必要的。使用
nheight=$(expr$nwidth\*$height/$width)
;或者更好的是,
nheight=$($nwidth*$height/$width))
eval
对于数学来说是不必要的。使用
nheight=$(expr$nwidth\*$height/$width)
;或者更好的是,
nheight=$($nwidth*$height/$width))
eval
对于数学来说是不必要的。使用
nheight=$(expr$nwidth\*$height/$width)
;或者更好,
nheight=$($nwidth*$height/$width))
。嗯,那一定是出了什么问题。因为如果我将全屏设置为TRUE,并对音频使用该标志(bool),则一切正常。音频值被打印到文件tiovar中,脚本按其应该的方式运行。OK修复了它。显然,最后一个参数和该参数之间必须有一个空格>否,在
>
之前不需要空格。一定是别的原因。嗯,那一定是别的原因。因为如果我将全屏设置为TRUE,并对音频使用该标志(bool),则一切正常。音频值被打印到文件tiovar中,脚本按其应该的方式运行。OK修复了它。显然,最后一个参数和该参数之间必须有一个空格>否,在
>
之前不需要空格。一定是别的原因。嗯,那一定是别的原因。因为如果我将全屏设置为TRUE,并对音频使用该标志(bool),则一切正常。音频值被打印到文件tiovar中,脚本按其应该的方式运行。OK修复了它。显然,最后一个参数和该参数之间必须有一个空格>否,在
>
之前不需要空格。一定是别的原因。嗯,那一定是别的原因。因为如果我将全屏设置为TRUE,并对音频使用该标志(bool),则一切正常。音频值被打印到文件tiovar中,脚本按其应该的方式运行。OK修复了它。显然,最后一个参数和该参数之间必须有一个空格>否,在
>
之前不需要空格。一定是别的原因。