Tag: Shell Script
写程式时很多时候需要检查档案或目录是否存在, 在 Shell Script 检查档案及目录是否存在, 可以在 if 条件判断式里面加上 -e 或 -d 实现, 以下是具体写法: 检查档案是否存在: 上面的 if 判断式也可以用一行来实现: 检查目录是否存在: 用一行来实现上面的程式码: 其中一个十分实用的例子, 是检查档案或目录是否存在, 如果不存在就便宜档案或目录: This is the best practice to check …
有时在 Shell Script 需要检查输入的参数数量, 在 Shell Script 要检查输入的参数数量, 可以直接用 $# 变量取得, 例如建立以下 Shell Script: 将以上内容储存成 test.sh 后, 并给予可执行权限, 可以尝试执行以下指令: $ test.sh 1 2 3 3 上面在执行 test.sh 时, 输入了 …
在 Linux CLI 下可以用 grep 指令, 将档案包含有指定字串的行印出, 或者配合 -c 参数直接印出匹配的行数, 例如: $ grep -c string filename.txt 如果在 Shell Script 要检查档案是否有指定字串, 当然可以检查以上指令输出的数值, 但另一个更方便的方法, 是用 grep 的 -q 参数, 具体写法是这样: grep …
touch 指令可以建立空白的新档案, 改变现有档案及目录的戳记, 以下是 touch 指令的用法。 linux-touch-command 在介绍 touch 指令的用法前, 首先讲一下 Linux 的档案的 3 种时间戳记: atime (access time) -> 档案最后被开启、读取或存取的时间。 mtime (modify time) -> 档案最后被修改的时间。 ctime (change time) -> …
一般上设定开机自动执行指令, 可以编辑 /etc/rc.local 档案, 而除了编辑 /etc/rc.local 外, 也可以用 crontab 完成。 crontab 是十分好用的排程自动执行工具, 它指定执行时间间隔十分灵活, 其中一个做法是用 @reboot 参数, 设定成每次开机自动执行。 首先开启 crontab: # crontab -e 加入以下一行: 以上一行设定开机后等待 1 分钟 (60 秒), 自动执行 …
以前 MySQL 的 “RENAME DATABASE” 指令, 已经在 5.1.23 后的版本删除, 原因是重新命名数据库时存在资料遗失的风险。 以下示范用 “RENAME TABLE” 指令及 mysqldump 指令, 替数据库重新命名的方法: RENAME TABLE 这个方法适合数据库比较大的情况, 但缺点是需要对每个资料表逐一执行。 先建立一个空白的数据库, 名称用要变更的数据库名称, 以下假设旧数据库是 oldname; 新数据库是 newname: 然后把资料表逐一用 RENAME …
timeout 指令可以在 Linux 下限制一个指令的执行时间, 当超出指定的时间后, 便自动终止执行. 例如想限制一个指令的执行时间在 10 秒, 当超过 10 秒便自动将它 kill 掉: $ timeout 10 tail -f /var/log/httpd/access.log timeout 的默认时间单位是秒, 上面的 10 没有指定单位, 默认代表 10 秒, 以下时间单位的写法: …
在 Linux 要修改档案名称, 可以用 mv 指令, 但如果要重新命名的档案很多, 用 mv 逐一修改会很痛苦, 也增加出错的机会。而 rename 指令则可以批次大量修改档案名称。 例如我想将所有 .jpeg 结尾的图片, 改变副档名成 .jpg, 可以用以下指令: $ rename ‘s/.jpeg/.jpg/’ * 以上指令会将当前目录下, 所有 .jpeg 结尾的档案, 改名成 .jpg …
写程式很多时都需要做字串搜寻并取代, 在 Python 内很简单, 只要用内建的 replace 方法便可实现。 语法 以下是 replace() 的语法: 参数: old − 原来字串, 找出并用新字串取代. new − 替换字串, 替换在原来字串内. max − 如果有定义 max 参数, 只会取代最初出现的 “max” 次数的字串. 例子: …
Linux 下要检查网络连线的工具有很多, 以下是用 Shell Script 检查网络连线的方法。 最简单的方法是用 ping 指令, 尝试 ping google.com, 这样除了测试网络连线外, 也一同测试 DNS: 执行上面的 Shell Script 后, 当网络连线及 DNS 正常, 会输出 “Network is up”; 不正常败会输出 “Network is …