
shell
styshoo
这个作者很懒,什么都没留下…
展开
-
执行shell脚本报错Syntax error: “(“ unexpected
背景更新容器镜像后,通过容器执行shell脚本报错。命令如下,其中portal-container 为容器名。# docker exec -i portal-container /bin/bash -c 'sh /data/kubespray/tools/deploy/deploy_k8s.sh'Syntax error: "(" unexpected原因更换的新容器镜像,使用了和原来不同的基础镜像,原来的sh命令最终是指向bash的。而现在的sh指向了dash,而bash和dash的语法是不原创 2022-03-25 17:30:29 · 3276 阅读 · 0 评论 -
CI脚本异常退出问题定位
背景 在CI脚本中,使用类似如下脚本进行项目编译的计时,但在执行过程中,有时会出现CI脚本(命名为ci.sh)未完全执行的情况: #!/bin/bash -esleep_time=$1start_time=`date "+%s"`# do sth, this sleep would simulate project compilationsleep $sleep_timeend_time原创 2017-11-06 23:39:42 · 839 阅读 · 0 评论 -
nohup介绍
背景 我们通常使用&将前台任务变为后台任务执行,但是如果只是使用&,那么在突然断网或者关闭启动该任务的终端(ps:可使用putty来测试,部分软件如mobaxterm做了优化,关闭终端是友好关闭的)时,内核就会给后台任务发送SIGHUP信号,从而导致后台任务停止。这时,我们就需要使用nohup来启动该后台任务。 简介 nohup,顾名思义,就是使得运行的命令可以忽略HANGUP信号。因此,即使原创 2017-09-05 06:54:43 · 8658 阅读 · 0 评论 -
Linux系统之lspci命令介绍
lspci,顾名思义,就是显示所有的pci设备信息。pci是一种总线,而通过pci总线连接的设备就是pci设备了。如今,我们常用的设备很多都是采用pci总线了,如:网卡、存储等。下面就简单介绍下该命令。 lspci:显示所有的pci设备信息。包括设备的BDF,设备类型,厂商信息等。 lspci -t [BDF]:显示指定BDF号的设备信息。 lspci -m/-mm:以一种机器可读的格原创 2016-04-29 14:10:16 · 65088 阅读 · 0 评论 -
terminal下历史命令自动完成功能history auto complete
CentOS下,有一个很智能的功能,就是只输入一条历史命令的前几个字母,再按PageUp和PageDown键,就可以在以此字母为前缀的历史命令中上下切换。这个功能非常实用,而且比CTRL+R使用起来更友善、更方便。遗憾的是,ubuntu上并没有这个功能。Google上搜索才直到,这个只是linux在终端对键盘的映射而已,和linux的某个发行版无关。只是CentOS下默认打开了这个功能,而ubunt原创 2016-03-25 23:52:37 · 10036 阅读 · 2 评论 -
使用xshell完成ssh二次登录
在现实环境中,网络常备分割为内网和外围,我们能直接访问的只有外网。外网服务器中,会设置一台网关,只有这台网关服务器的网络可以和内网联通。 如上图所示,我们联通内网服务器的方法都是ssh到网关服务器,再通过网关服务器ssh到内网服务器。然而,每次都要输入两次用户名和密码,有些繁琐,在这里,我们就介绍一种通过xshell来一步登录内网服务器的方法。为什么用xshell?因为它家用免费啊,l原创 2016-03-30 00:07:48 · 21707 阅读 · 4 评论 -
获取脚本所在路径的方法
背景 python脚本1使用了相对路径,如果调用该脚本1的脚本2另外位于不同目录时,就会出现路径错误的情况,原因是相对路径会按照脚本2的路径来匹配相对路径,这样就出现了问题。解决方法python 代码如下。__file__返回脚本的名称,os.path.realpath获取脚本的绝对路径,而os.path.split会把文件的路径和文件名分开,返回一个(路径, 文件名)的元原创 2015-12-13 08:20:18 · 2385 阅读 · 0 评论 -
linux上文件格式引起的问题
配置文件(test.conf)中存储了另外一个文件的路径(/home/sty/testFile),cat该文件获取路径后来访问对应的文件,却提示没有此文件。 由上图可见,文件是的确存在的,但直接访问却有问题,如下: 上面的显示中出现了乱码,很明显,很有可能是获取的字符串有问题。直接在shell中不能显示的清楚,我这里就用python来实现该功能。原创 2015-11-22 20:41:31 · 840 阅读 · 0 评论 -
linux显示运行脚本进程号的方法
一般来说,我们可以使用pidof来显示运行进程的进程号,但是,如果是想获取运行脚本的进程号的话,用pidof是获取不到的。以sh运行脚本test.sh为例,test.sh脚本如下:while truedo sleep 1done 执行如下命令sh test.sh,脚本就会进入死循环。执行pidof 'sh test.sh'命令,获取结果为空;执行pidof sh却可以得到原创 2015-10-25 18:09:29 · 13658 阅读 · 0 评论 -
Shell脚本中$的用法
$0: 脚本名称,相对路径还是绝对路径要看调用的方式。如果是在父目录中,./dollarTest.sh调用,那么$0就是./dollarTest.sh;如果是全路径调用,如"/root/test/dollarTest.sh",那么$0就是"/root/test/dollarTest.sh"。 $n:调用的第n个参数。ps:如果n > 9,那么数字需要用括号括起来,如${10},否则she原创 2015-08-02 23:07:58 · 3847 阅读 · 1 评论