按照C语言语法, 0 表示假,非零(常常用 1)表示真,那是否函数也用 0 返回值表示“失败”,1 返回值表示“成功”呢?...“行业潜规则” C语言函数当然可以使用返回值 0 表示“失败”,用返回值 1 表示“成功”。...C语言也有“行业潜规则” 不过,对于一般的函数,大多数C语言程序员常常使用返回值 0 表示成功,非零值表示失败。...因此,如果希望我们定义的函数能够被大多数人愉快的使用,最好不要反其道而行,遵守“行业潜规则”更好一点。 仔细考虑下,其实C语言函数使用返回值 0 表示成功是有原因的。...函数成功只有一种可能,函数失败却有多种可能 实数要么是 0,要么非 0,因此可以将 0 看作一个比较特殊的“唯一”数值,使用 0 这个“唯一”的返回值,表示唯一的“成功”,多种非零的返回值,表示多种原因的失败
在使用异或交换数组值的时候,可以使用异或,不用临时变量。...但是这个方法当i与j相等时,相当于始终对一个数自己进行异或,我们知道两个一样的数异或结果为0 假如i==j 则 a[i] = a[i] ^ a[j]; //结果为0 则此时a[i]=a[j]=0 a[...j] = a[i] ^ a[j]; // = 0 ^ 0 = 0; a[i] = a[i] ^ a[j]; // = 0 所以最后结果为0 添加一行判断问题解决。
如果命令返回错误码,使用“ -o errexit ”选项可以中断脚本的执行。但是循环例外,因此如果 if 命令不能返回非零的状态码, if 命令就不能正确的运行。...=0 while [ $CNT -lt 3 ] ; do CNT=CNT+1 done 当进行跟踪时, CNT 的值在每一行后面显示: $ bash -x debug_demo.sh + trap ‘:...并在更新时使用 C 标识。 CVS 标识出在什么地方有冲突,你必须自己编辑脚本以解决这些冲突。 如果在更新后没有其他问题,你可以继续编辑你的源代码。...并使用下面的命令: $ diff -u —recursive —new-file older.sh newer.sh > file_count.diff 建立了 patch 文件,它的内容如下: @@...( 当使用 -whole-size-limit 选项时 ) 。
Linux下的标准输入、输出、重定向、管道 在Linux系统中,有4个特殊的符号,’, ‘|’, ‘-‘,在我们处理输入和输出时存在重要但具有迷惑性的作用。...unexisted_command 运行这个脚本 # 标准输出和标准错误默认都会显示到屏幕上 ct@ehbio:~$ bash stdout_error.sh I am std output stdout_error.sh...I am std output # >把结果输入到了文件; 2>把标准错误输入到了另一个文件 ct@ehbio:~$ bash stdout_error.sh >stdout_error.stdout...: command not found # 标准输出和标准错误写入同一个文件 ct@ehbio:~$ bash stdout_error.sh >stdout_error.stdout 2>&1 ct...,也重定向给diff ct@ehbio:~$ cat diff - <(echo "1 2 3" | tr ' ' '\n') > 2 > 3 > 4 > END 0a1 > 1 3d3
: # 等价于u=rwx g=rwx o=rwx chmod 777 test.sh 777是3组rwx二进制表示对应的十进制数,比如r--为4(100) P.S.一般把这个叫八进制值(值为0到7都不超过...权限使用: # root组root用户 chown root.root bomb.sh # 如朕亲临 chown u+s bomb.sh touch touch摸一摸,存在的话更新时间戳,不存在的话创建一个空文件...# 清空历史栈(只保留当前记录) dirs -c +N、-N表示方向,+N从栈顶开始数0123......,-N从栈底开始数 P.S.注意og my zsh某个版本+-方向是反的,bash正常 wc 统计行数、单词数、字符数,常用于简单的代码统计: # 输出行数、单词数、字符数 wc test.sh # 取行数...wc -l test.sh | awk '{print $1}' # 取单词数 wc -w test.sh | awk '{print $1}' # 取字符数 wc -c test.sh | awk
2、支持表结构校验 pt-table-checksum 不校验表结构,改写时添加表结构的校验。...该脚本必须要求在整个工具的家目录下执行 (3)常用命令参考 管理脚本相关 bash manager.sh -a start -t eth0 -n 30 启动eth0网卡的流量监控,流量达到30%就暂停数据校验...bash manager.sh -a pause 暂停监控及暂停数据校验任务 bash manager.sh -a continue 继续监控及继续数据校验 bash manager.sh -a stop...停止监控及停止数据校验 主程序相关 bash start.sh -f true -d dbatest -t test1 -l 0-5 仅校验dbatest库下的test表,且在0点到5点执行校验任务...00 h 00 m 00 s ] [ 9.09%, (0:0)/1 ] [ 数据一致 ] [ 2022-01-17 20:32:19 ] [ 成功 ] [ 192.168.1.1 ] [ func/f_check_diff_for_mysql.sh
/var/lib/docker/overlay2/0f27e9d2ca7fbe8a3b764a525f1c58990345512fa6dfe4162aba3e05ccff5b56/diff/etc/bash_completion.d...76c41c1d1eb6eaa7b9259bd822a4bffebf180717a24319d2ffec3b4dcae0e66a/merged/etc/bash_completion.d /var/lib.../bash_completion.sh /var/lib/docker/overlay2/78b8ab76c0e0ad7ee873daab9ab3987a366ec32fda68a4bb56a218c7f8806a58.../docker/overlay2/ee672bdd0bf0fdf590f9234a8a784ca12c262c47a0ac8ab91acc0942dfafc339/diff/etc/profile.d/...bash_completion.sh /var/lib/docker/overlay2/ee672bdd0bf0fdf590f9234a8a784ca12c262c47a0ac8ab91acc0942dfafc339
# rm /bin/sh # ln -s /bin/bash /bin/sh # ls -l /bin/sh lrwxrwxrwx 1 root root 9 9月 3 10:50 /bin/sh.../bin/bash # Simple script to list version numbers of critical development tools export LC_ALL=C bash...failed"; fi rm -f dummy.c dummy bash bash version-check.sh 分区 GPT sudo cfdisk Device Size Type Mount.../version-check.sh bash, version 5.0.17(1)-release /bin/sh -> /usr/bin/bash Binutils: (GNU Binutils for...doesn't exist eth0.jpg 注意 如果没有使用前一节描述的自定义命名策略,udev 会根据系统物理特征命名网卡接口,例如 enp2s1。
:这个命令将列出具有 .sh扩展名的文件,当想要过滤特定文件时非常有用。...为前缀的目录) mkdir A B C D # 同时创建 A B C D 四个目录 mkdir /home/user/MyFolder # 在指定路径下创建目录 mkdir -p A/B/C/D # 创建多层级目录...# history 1 hahha 2 ls 3 cls 4 clear 5 yum install git 6 git 当需要调用并重复使用以前执行过的命令时...diff 命令 要查找两个文件之间的差异,可以使用diff命令后跟文件名。...fruits.txt color.txt 1,4c1 < Apple < Mango < Banana < Cherry --- > Rea 5a3 > Blue diff 命令将显示两个文件之间不同的行
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash 使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行 /bin/bash 命令。...; -m : 提交时的说明文字; -p : 在 commit 时,将容器暂停。...3 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B 3 months ago /bin/sh -c sed -i 's/^#\s*\(deb..../bin/sh' > /u 701 B 3 months ago /bin/sh -c #(nop) ADD file:43cb048516c6b80f22
/bin/bash ftp -n<<!...6、ftp自动登录下载单个文件 ####ftp服务器上下载/home/data/a.sh to local /home/databackup#### #!/bin/bash ftp -n<<!...7、ftp自动登录上传单个文件 ####把本地/home/databachup/a.sh up ftp /home/databackup 下#### #!/bin/bash ftp -n<<!...# 比较目录变化,并将变化的文件写入日志 DIFF=$(diff $TMP_A $TMP_B) if [[ -z $DIFF ]]; then echo "Nothing change" >>...: echo_color red string" esac } 使用方法:echo_color green "test" function关键字定义一个函数,可加或不加。
需求:对一个目录(比如/data/test)进行监控,当这个目录下文件或子目录出现变动(如修改、创建、删除、更名等操作)时,就发送邮件!.../data/test/.hhhh.swp 5ab557c937e38f15291c04b7e99544ad /data/test/test.txt f447b20a7fcbf53a5d5be013ea0b15af...root root 0 Jan 10 01:44 diff2018-01-10__01:44:30.log -rw-r--r--. 1 root root 179 Jan 10 01:47 diff2018...10 01:47 old.log [root@centos6-vm01 test]# cat /var/CheckFile/diff2018-01-10__01\:47\:41.log 2,3c2...通过crontab定时任务,每5分钟执行一次检查: [root@centos6-vm01 test]# crontab -e */5 * * * * /bin/bash -x /opt/file_monit.sh
0B / 0B 1 其他容器命令 前面学习的都是常用的容器命令,接下来学习一些不常使用,但是使用起来可以大幅度减轻工作负担的命令,如cp、diff、port和update命令。...当原路径为软连接时,默认只复制连接信息,如果使用该选项时则会复制连接的目标内容。.../docker/overlay2/dbc7f1e67edbca3dd4be913bd465ff2bc3c64b518d4c7eb8f7aebc1a791c0b0b/diff/tmp/test.txt /...diff命令查看文件变更 开发者可以使用docker diff命令来查看容器内文件系统的变更,其对应的格式为docker diff CONTAINER。...举个例子,开发者查看别名为lichee的容器内的数据修改情况,可以使用docker diff命令: [root@envythink envythink]# docker diff lichee C /root
我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。 --rm:这个参数是说容器退出后随之将其删除。...$ docker diff webserver C /root A /root/.bash_history C /run C /usr C /usr/share C /usr/share/nginx C...-c #(nop) CMD ["nginx" "-g" "daemon 0 B 4 weeks ago /bin/sh -c #(nop...-1 0 B 4 weeks ago /bin/sh -c #(nop) MAINTAINER NGINX Docker Ma 0 B... 4 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。.../bin/bash sum=0 for ((i=0;i<10;i++)) do ((sum=$sum+$i)) done echo "sum=$sum" exit 0 例子5:使用 break...:[break 应用] 从 0 开始逐步递增,当数值等于 5 时跳出本次循环,等于10时停止递增。 #!...引用数组时从序号 0 开始。...exec 当 bash 执行到 exec 语句时,不会去创建新的子进程,而是转去执行指定的命令,当指定的命令执行完时,该进程(也就是最初的 bash)就终止了,所以 bash 程序中 exec 后面的语句将不再被执行
bash_bundle.tar -C ..../tmp -xf bash_bundle.tar ab.diff 奇怪的技巧: # stdin/stdout # 把打包结果输出到stdout tar -cf - test.sh # 从stdin读取包内容...gunzip test.sh.gz 查看: # -l列出包内文件名、压缩前后大小、压缩比 gzip -l test.sh.gz 也配合stdin/stdout使用: # -c输出到stdout cat...对应1,--best对应9 gzip test.sh --fast # 等价于 gzip test.sh -1 # tar的-z选项使用gzip压缩 tar -zcvf bash.tar.gz "*.sh...-av bash bash.bak --exclude "*.md" # --delete备份时删除不存在的文件,默认不会删掉源端已经删掉的东西 rsync -av bash bash.bak --exclude
sh -c #(nop) COPY file:0b866ff3fc1ef5b0… 1.96kB 9 days ago /bin/sh -c #(nop)...sh -c #(nop) CMD ["/bin/sh"] 0B 10 days ago /bin/sh -c #(nop)...=3.10.0 0B 10 days ago /bin/sh -c #(nop) ENV GPG_KEY=A035C8C19219B… 0B...,同样也可以在执行docker build命令时添加该指令以在镜像构建时不使用缓存 构建上下文中,使用.dockerignore 文件在构建时就可以避免将本地模块以及调试日志被拷贝进入到Docker镜像中...-c #(nop) COPY file:0b866ff3fc1ef5b0… 1.96kB 10 days ago /bin/sh -c #(nop) COPY
sh) 更多例子: SumLines() { # iterating over stdin - similar to awk local sum=0 local...$()允许内嵌,而且避免了转义的麻烦 # both commands below print out: A-B-C-D echo "A-`echo B-\`echo C-\\\`echo D\\\`\`...一些命令使用文件名作为参数,所以管道就无法使用了。...这时<()就派上用场了,它可以接受一个命令,然后把命令转换成可以作为文件名的东西: # download and diff two webpages diff sh 跟踪脚本里每个命令的执行: bash -v myscript.sh 跟踪脚本里每个命令的执行并附加扩充信息: bash -x myscript.sh 你可以在脚本头部添加
领取专属 10元无门槛券
手把手带您无忧上云