一.问题 最近在写 shell 脚本的时候,遇到了一些小问题,就是我在判断一个字符串是否为空的时候经常报下面的错,程序是正常执行了,但是有这个提示很蛋疼,下面就是看看是什么问题导致的? [: too many arguments 二.问题解析 原始脚本 我的脚本是这样写的 #!/bin/bash list='1 2 4 ad' if [ $list -eq '' ] then echo "empty" else echo "not empty" fi 运行后 [ro…
shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断时,无法知道该获取哪个值,例如: 脚本ee.sh: strings1="hello world" strings2="hello world" if [ $strings1 = $strings2 ] then         echo "strings1 i…
报错环境 系统信息 Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial docker 信息 Docker version 18.06.0-ce, build 0ffa825 错误信息 能够在shell中使用docker version打印版本号,但是无法执行docker,报错信息如下 + docker run -i --rm --name my-node-8 -u 0 -v…
今天做一个新项目,项目系统的框架是用SSH,特意查看了一下项目源码,用的ajax提交比较多,主要的问题是该系统对IE(8~10)浏览器都不兼容,无法进行录制. 是问题,总有解决的办法! 我本机为LoadRunner11,win7 64位,IE10: 后面尝试使用其他浏览器录制脚本(Chrome 47.0版本 .Firefox 37.0版本.Opera 35.0版本)都无果,录制完脚本为空!但使用360 7.0版本可以. 1.录制脚本回放,回放日志报500错误,如图: 2.分析脚本,查找原因: 在…
目录 场景 解决过程 解决方案 总结 场景 用loadrunner11录制脚本,处理后回放,加上检查点,报错找不到检查点对应的内容,去掉检查点,没有报错,但是打开页面没有该操作的痕迹.手动在页面上操作没有问题. 解决过程 怀疑是脚本中请求有问题或者没有作关联.在页面上通过开发者工具(F12)查看几个关键请求,都没有问题,顺序和内容都能对得上.使用到的参数和返回值,都是固定的,无须关联. 查看应用日志,看是否有报错信息.应用有十几个中心,通过dubbo调用,然而由于使用的docker容器,日志没有…
使用source导入外部sql文件: mysql> source F:\php\bookorama.sql; -------------- source F: -------------- ERROR: Unknown command '\b'. ERROR: Failed to open file 'F:hp\bookorama.sql', error: 2 居然报错, 仔细分析错误原因,发现文件路径已经出现问题:F:hp ,而原本文件的路径是F:\php,   于是想到反斜杠被当成转义字符处…
最近突然安装zabbix总是报错,比如 (24/27): t1lib-5.1.2-14.el7.x86_64.rpm | 166 kB 00:00:00 zabbix-web-4.4.6-1.el7.noarch. FAILED ==================================- ] 347 kB/s | 11 MB 00:00:15 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-web-4.4.6-1.…
有时候会碰到这样的场景,对于一些业务升级,我需要把数据库数据做些处理,同时又想以 Django 项目的环境变量执行脚本,这个时候使用 python 脚本是再适合不过的手段了. 注意:在pycharm里面是不能直接执行的,否则会爆 django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 要通过manage.py来执行,格式: python manage.py shell < xxx.py 但是,极容易出现SyntaxE…
php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误 错误:Cannot use object of type stdClass as array 产生原因: +展开 -PHP $res = json_decode($res); $res['key']; //把 json_decode() 后的对象当作数组使用. 解决方法(2种):1.使用 json_decode($d, true).就是使json_decode 的第二个变量设置为 tru…
最近几天在把win上的项目的数据库转移到Ubuntu,于是第一件事就是从win处的navicat直接导出sql脚本,然后进入Ubuntu导入的时候会报错误,跳过错误继续执行导致数据库表的缺失. 跨平台错误的操作如下: 如果都是win下的话,上边的这种操作是可以的,导入导出都没有错误,可是到了Linux下的时候,就会出现sql错误,最开始还以为是因为数据库版本问题,在Ubuntu下安装了好几个版本,最后停在了8.0.3最新的版本.之后问同事知:navicat导出的sql是经过navicat改变了的…
解决 bash: cd: too many arguments 本来想着用git bash进入文件夹,但是文件夹名称中带有空格,例如:my blog,导致出错. 在查找资料后,找到一种并不可行的方案,就是用括号扩起文件,但自己试了一下,出现了以下情况.. 紧接着,通过不断寻找,发现了解决方案以及另外一个还没有经历过的情况[bash: syntax error near unexpected token'('. 解决办法 我的情况是路径中不包括( ),只是存在着空格.只需将文件名用双引号扩起即可.…
Dash is not bash 在一些 docker 官方 Image 中,执行一些 .sh 文件的时候遇到了一些奇怪现象,比如: 1 2 3 # Run something like: [[ $ABC =~ regexp ]] #> [[: not found 其实是因为此 Image 中 sh 并非 bash,而是 dash: 1 2 ls -l /bin/sh #> /bin/sh -> dash 此时,只需重置 sh 就好了: 1 2 rm /bin/sh ln -s /bin…
路径名或者变量有空格时候,会造成参数太多的错误提示 解决方法:把空格的地方用引号包括起来…
重定向管道流读取TXT文本第一次读取为""空字符串.type xxx.txt | go run . 报错.BOM头.[239 186 191] 字节数组…
在使用SpringBoot开发时,使用RedisTemplate执行 redisTemplate.execute(lockScript, redisList); 发现报错: ERR Error running script (call to f_8ea1e266485534d17ddba5af05c1b61273c30467): @user_script:10: @user_script: 10: Lua redis() command arguments must be strings or…
一. 启动脚本模板:符合幂等性 如果该服务已经启动,再次调用该脚本,不会报错,也就是说可以反复多次调用,另外启动成功返回 一个参数,提供给自动发布平台校验该服务是否启动 #!/bin/bash instancename= # check is instance running PID=`ps -ef | $instancename | grep -v grep ` if [ ! -z "$PID" ]; then echo "instance $instancename is…
Ubuntu系统下,执行字符串截取脚本时,总是报错:Bad substitution,脚本非常简单如下: #!/bin/sh str1="hello world!" :} 执行后报错: .str1.:./str1.sh:Bad substituion 解决方法: 将解释器调整为bash #!/bin/bash$sudo ./str1.shello 原因是ubuntu的sh是连接指向dash的,而不是bash,自然在识别${str1:1:4}总是出问题. Linux中的shell有多种类…
CREATE TEMPORARY TABLE spark_tbls USING org.apache.spark.sql.jdbc OPTIONS ( url 'jdbc:mysql://hadoop000:3306/hive?user=root&password=root', dbtable 'TBLS' ); ; TBL_ID TBL_NAME aaa abc ; TBL_ID TBL_NAME aaa select TBL_ID, TBL_NAME from spark_tbls wher…
同一脚本sh 脚本名 执行时报Syntax error: "(" unexpected:而./脚本名执行不报错,为什么呢 脚本内容如下: function usage(){ echo "usage:$0 url" exit } function check_url(){ -T $ ] then echo "$1 is ok" else echo "$1 is not ok " fi } function main(){ ] t…
运行root.sh脚本的时候报错 报错信息: [root@rac1 ~]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInventory.Adding read,write permissions for group.Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInve…
简介 昨天在通过shell脚本实现一个功能的时候,由于对shell处理字符串的方法有些不熟悉导致花了不少时间也犯了很多错误,因此将昨日的一些错误记录下来,避免以后再犯. 字符串的定义与赋值 # 定义STR1变量,值为abc STR1 = "abc"(错误写法) STR1="abc"(正确写法) 在编写java代码时会考虑到格式化,往往变量定义时会有一些空格或者换行符等,因此在写shell脚本时也就顺手这么写了,在运行时就会报错:"command not f…
Linux脚本shell字符串处理,基本都有了,看着搜吧 TLDP教堂 shell中if条件字符串.数字比对,[[ ]]和[ ]区别 Linux 之 shell 比较运算符 Linux Shell编程变量赋值和引用  …
一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1  # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.linuxidc.com/123.htm . 2  ## 号截取,删除左边字符,保留右边字符. echo ${var##*/} ##*/ 表示从…
字符串的定义与赋值 # 定义STR1变量,值为abc STR1 = "abc"(错误写法) STR1="abc"(正确写法) 在编写java代码时会考虑到格式化,往往变量定义时会有一些空格或者换行符等,因此在写shell脚本时也就顺手这么写了,在运行时就会报错:"command not found",将空格删除才正常运行.源码如下: #!/bin/bash STR1="abc" echo $STR1 STR2 = "…
shell编程系列1--shell脚本中的变量替换 变量替换总结: .${变量#匹配规则} # 从头开始匹配,最短删除 .${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) .${变量%匹配规则} # 从尾开始匹配,最短删除 .${变量%%匹配规则} # 从尾开始匹配,最长删除(贪婪模式) .${变量/旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,只替换第一个 .${变量//旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,全部替换 variable_1="i l…
概述 shell 的字符串拼接 1. 字符串声明 概述 字符串的基本操作 脚本 1 # 声明字符串 str01="str01" echo ${str01} # 单引号也可以 # 不过后面的例子, 通常是用 双引号, 具体原因, 以后会解释 str02='str02' echo ${str02} # 对引号的转义, 这里就不提了 2. 简单拼接 概述 简单的字符串拼接 脚本 1: #/bin/bash # 字面量拼接 # 1. 两个串依次排列即可 # 2. 不能有空格, 否则会报错 #…
                                                          shell编写一个判断脚本 4.1问题 本例要求在虚拟机server0上创建/root/foo.sh脚本,任务目标如下: 当运行/root/foo.sh redhat,输出为fedora 当运行/root/foo.sh fedora,输出为redhat 当没有任何参数或者参数不是redhat或者fedora时,其错误输出产生以下信息:/root/foo.sh redhat|fedo…
一.预备知识 1.shell的作用   2.常识 (1)Tab键自动补全   使用Terminal时,输入命令的前几个字母,敲tab会自动补全命令或文件名.目录等. 好处:操作速度更快:不容易出错: (2)清屏命令 Ctrl + L 或 输入命令clear  (3)命令历史:  执行:history      清除历史:history -c         技巧1:!num  命令直接打开历史命令,num为history查看的序列         技巧2:!XX     命令查看历史命令中最后一…
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-…
在Shell中引用其他脚本的方法是source   filename.sh 或    .    filename.sh 注意:      .   和   filename.sh之间必须有空格…