首页 > 系统相关 >【shell 】syntax error in conditional expression

【shell 】syntax error in conditional expression

时间:2024-05-24 18:06:56浏览次数:14  
标签:shell conditional syntax sh error test expression

【shell 】syntax error in conditional expression

于 2016-04-15 10:04:53 发布 阅读量3.6k 收藏 2 点赞数 1 文章标签: shell 版权 编写shell 脚本时遇见 syntax error in conditional expression 错误,
#!/bin/bash
# cleanup /var/log/message
LOG_DIR=/var/log
ROOT_DID=0
LINES=50
E_XCD=66
E_NOTROOT=67
if [[ "$UID" -ne "$ROOT_UID"]]
then
 echo "Must be root to run this script."
 exit $E_NOTROOT
fi
if [ -n "$1"]
then
    lines=$1
else
   lines=$LINES
fi
.......
[email protected] # sh test.sh
test.sh: line 12: syntax error in conditional expression
test.sh: line 13: syntax error near `then'
test.sh: line 13: `then'
仔细查看是由于 if 条件中的中括号[ ]与变量之间必须有空格
[email protected] # vi test.sh
#!/bin/bash
# cleanup /var/log/message
LOG_DIR=/var/log
ROOT_DID=0
LINES=50
E_XCD=66
E_NOTROOT=67
if [[ "$UID" -ne "$ROOT_UID" ]]
then
 echo "Must be root to run this script."
 exit $E_NOTROOT
fi
if [ -n "$1"]
then
    lines=$1
else
   lines=$LINES
fi
.....
"test.sh" 60L, 793C written
修改以后,再次执行成功
[email protected] # sh test.sh 20
Logs cleaned up   

标签:shell,conditional,syntax,sh,error,test,expression
From: https://www.cnblogs.com/pengmn/p/18211496

相关文章

  • Shell-单引号和双引号的区别
    在shell脚本中,单引号(')和双引号(")都用于文本引用,但它们之间有一些区别:双引号[1] 当要引用一个变量的值时,一般推荐使用双引号。[2] 使用双引号除了变量名前缀($)、后引符(`)和转义符(\)外,会使shell不再解释引号中其它所有的特殊字符。[3] 用双引号时$仍被当成特殊字符,允许......
  • Bash反弹shell & 搭建网页服务器 & 文件描述符学习 & ssh连接vm虚拟机 & sftp进行文件
    环境:kali:┌──(kali㉿kali)-[~/Desktop]└─$cat/proc/versionLinuxversion6.0.0-kali5-amd64([email protected])(gcc-12(Debian12.2.0-9)12.2.0,GNUld(GNUBinutilsforDebian)1.建立一个简单的链接进行nc,可以进行两个端口通信!#首先使用nc监听......
  • PowerShell 中重置SQL SERVER数据库的 SA(System Administrator)密码可以通过 SQL Serve
    PowerShell中重置数据库的SA(SystemAdministrator)密码可以通过SQLServerManagementObjects(SMO)来完成。以下是一个基本的PowerShell脚本,可以用来重置SA用户的密码:powershellCopyCode#导入SQLServer模块Import-ModuleSQLPS-DisableNameChecking#设置SQL......
  • MeterSphere BeanShell 前置脚本拦截请求,获取请求参数,加密后放回请求体
    在 BeanShell 前置脚本中拦截请求,获取请求参数,加密后放回请求头背景在测试小程序项目时,需要对post接口请求中的参数值拼成字符串,进行sha256加密,然后将加密好的字符串,存到请求头中。具体操作:这个场景就需要在前置处理器中使用 beanshell 进行请求拦截,对参数进行加密修改后,......
  • Make your own shell -- Assign4
    前言整个实验做了四天,也有很多东西想聊的。主要是分享我对其中的一些系统调用的理解,和整个shell是如何工作的,可能会有一些代码上的剧透,未完成该实验的朋友慎重观看。理解UnixShell在Linux中我们打开了一个终端,内核就会执行一个fork()来启动一个shell,之后我们在这个shell中输......
  • Jmeter脚本--BeanShell PreProcessor
    整理一份之前项目中的接口测试文档内容,主要为了方便以后能够更好的进行接口测试需求,本次以Jmeter进行接口测试。API对应的使用手册    接口对应的测试用例如下图所示:编写Jmeter测试用例 用户注册信息 添加BeanShellPreProcessor预处理程序变量脚......
  • powershell脚本批量拉取 git仓库文件
    #定义基础URL和数据库列表$BASE_URL="http://8.8.11.99:8999/yaya/"$DATABASES="common-service","bi-system","erp","gateway","pdm","plm","public-service","scm",&quo......
  • 写一个Linux的 shell脚本删除目录 stud001~stud140 目录下的所有文件
    用户:在linux的shell脚本中写个循环,可以遍历目录stud001直到stud140,并将目录stud001到stud140目录中的内容全部删除。讯飞星火:在shell脚本中,我们可以使用for循环和rm命令来实现这个需求。以下是一个简单的示例:1#!/bin/bash2foriin$(seq-f"%03g"1140)3do4......
  • 基于ADB Shell 实现的 Android TV、电视盒子万能遥控器 — ADB Remote ATV
    ADBRemoteATVAndroidTV的遥控器,基于ADBShell命令ADBRemoteATV是一个AndroidTV的遥控器,基于ADBShell命令,泛用性更高。下面的shell命令,是软件的基本原理,通过shell命令可模拟物理遥控器的基本按键,此外还可以快捷启动指定APP、借助手机软键盘输入中/英字符等。......
  • shell(一)
    shell(一)单选题1、在bash中,快捷键【Ctrl+Z】的作用是什么?A、中止前台任务B、给当前文件加上.eofC、将前台任务转入后台D、注销当前用户2、使用sed命令删除文件file中的所有文本行开头的空格,下列命令正确的是。A、sed-r's/^\s+//g'fileB、.sed-r'/^./s*///g'file......