我在这里有此代码。 但是我得到了错误:
./concatconvert: line 9: [: -eq: unary operator expected
./concatconvert: line 18: [: -eq: unary operator expected
这是我的代码:
#!/bin/bash
param=$#
if [ $# -le 2 ]
then
echo "Usage: concatconvert [-u|-1] FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----. Optional first argument -u or -l converts contents to uppercase or lowercase,$
fi
if [ $1 -eq "-u" ]
then
while [ $param -ge 1 ]
do
./concat | awk '{print toupper($0)}'
param=$(( param-1 ))
shift
done
fi
if [ $1 -eq "-l" ]
then
while [ $param -ge 1 ]
do
./concat | awk '{print tolower($0)}'
param=$(( param-1 ))
shift
done
fi
为什么会出现此错误?我以为-eq是一元运算符?
答案 0 :(得分:1)
您错过了一些事情,例如-> "
的{{1}}命令未关闭。然后在echo
条件下,因为您要比较一个字符串,所以将其更改为if
,所以下面可能是脚本(由于没有样本,所以我没有对其进行测试)。
if [[ "$1" = "-u" ]]