linux在执行完一条命令后,使用 echo $? 会显示上一条命令是否执行成功,相关状态码如下 0为成功 表格 D-1. "保留的"退出码 退出码的值 含义 例子 注释 1 通用错误 let "var1 = 1/0" 各种各样的错误都可能使用这个退出码, 比如"除0错误" 2 shell内建命令使用错误(Bash文档上有说明)   很少看到, 通常情况下退出码都为1 126 命令调用不能执行   程序或命令的权限是不可执行的 127 "…
shell & bash shell指允许用户通过文本操作计算机的程序. interactive shell:从是否通过标准输入输出与用户进行交互的角度分为交互式shell(interactive)和非交互式shell(non-interactive). login shell:从是否以一个指定用户及其环境进入shell角度分为登录式shell和非登录式shell,登录式shell会额外source /etc/profile,/etc/profile.d,~/.profile,~/.bash_l…
说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1   1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt  b.txt  c.old   #2 1 2 3 4 [chengmo@localhost ~/shell]$ ls *.txt a.txt  b.txt   #3 1 2 [chengmo@localhost ~/shell]$ ls d*.txt ls: 无法访问 d*.txt: 没有那个文件或目录 从上面这…
bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash shell 的,所以你不需要额外配置所谓的开发环境. 我的 shell 环境是 macOS Sierra 版本,如果你用的是其他 Linux 系统,后面的例子基本上都是可以运行的. 首先,打开Terminal 命令行,先检查下你的系统的 shell 版本: echo $BASH_VERSION bas…
最近在将ksh转成bash运行的时候出现了问题.代码如下: echo $1 | sed 's/\..*$/''/' | read FILE_NAME 当使用ksh执行的时候没有问题,FILE_NAME能获取到正确的值.但当使用bash执行时,FILE_NAME值为空. 找了半天也不知道什么原因,最后找到了一种解决方法.代码如下: read FILE_NAME <<< ` echo $1 | sed 's/\..*$/''/' ` 上面的代码有两点需要注意: ①使用了 <<&l…
linux有些命令需要输入密码,比如ssh或su,又不能通过参数指定,正常只能手动输入.这让人多少有些懊恼,尽管这样很安全! 破解:expect 默认没这个东西,需要安装 apt/yum install -y expect 好了,可以使用了,先写个shell脚本 #!/usr/bin/expect#用expect执行下面脚本 spawn su#执行su命令 expect "Password:"#看到这样的文本时 exp_send "123123\r"#输入密码 in…
脚本是:      nohup /mnt/Nand3/H2000G  >/dev/null  2>&1  &      对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入 1表示屏幕输出 2表示错误输…
在计划任务中经常可以看到.例如我们公司的计划任务举例: */ * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne >/dev/>& */ * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testTwo >/dev/>& 对于& 1 更准确的说应该是文件描述符 1,而…
笨鸟先飞,先理解.   脚本是:      nohup /mnt/Nand3/H2000G  >/dev/null  2>&1  &      对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入 1表…
shell中可能经常能看到:echo log > /dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件>  :代表重定向到哪里,例如:echo "123" > /home/123.txt1  :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"2  :表示stderr标准错误&  :表…