Tag: Shell Script

Shell Script 字串搜寻并取代

写程式很多时都需要做字串搜寻并取代, 在 Shell Script 内可以使用各种工具完作, 以下是 Shell Script 做字串搜寻取代的方法。 搜寻取代变量的字串: 上面的程式, 第 3 行定义变量 str 的值是 abc, 而第 5 行则设定将变量 str 内的 abc 替换成 xyz. 如果不是替换变量的字串, 是要替换档案的字串, 可以用 sed …

RHEL / CentOS 设定 Logrotate 实现记录档轮替

在 Linux 如果用套件管理工具 (例如 yum, dnf, apt-get) 安装套件, 一般会设定好 logrotate 做记录档轮替, 但如果套件是自行编译安装, 或者是自行开发的系统 (例如 Shell Script), 除了可以自行编译记录档输替的功能外, 也可以用 Logrotate 实现。 Logrotate 的设定档是 /etc/logrotate.conf, 用作设定 Logrotate 的默认参数, 而 /etc/logrotate.d/ 目录下建立需要轮替的记录档, …

检视,搜寻,解压 .tar / .tar.gz 内个别档案

当 .tar 或 .tar.gz 压缩档容量十分大, 在解压前想先检视压缩档内的内容, 可以在 tar 指令加上 -tf 参数实现, 例如: $ tar -tf myfile 以上指令会将 myfile 内所有档案列出, 想要进行档案搜寻, 可以用 pipe 配合 grep 使用, 例如想列出所有 .php 档案, 可以这样: …

Linux find 指令的 exec 参数

Linux 下找档案很多时会用上 find 指令,当用 find 指令找到档案或目录后,可以在后面加上 -exec 参数,来对每一个找到的档案或目录执行特定指令。 find 指令加上 -exec 参数的具体语法是这样: $ find /path/to -name “filename” -exec command {} \; 在 -exec 前面是 find 指令找出想要的档案,在 -exec 后面的 command …

vi / vim 搜寻并取代字串

不管系统管理还是写程式,在档案内对字串进行搜寻并取代十分常用,在 Unix Like 环境下常会用 sed 或 perl 做 search & replace. 如果在开启档案后需要取代字串,其实在 vi 及 vim 内同样可以做搜查及取代字串,做法跟 sed 差不多,以下是 vi 做搜寻及取代的语法: :%s/search_from/replace_to/g 以上 vi 的语法会将档案内,所有 “search_from” 的字串替换成 “replace_to”。 将上面指令最后加上一个 “c” …

用 SSH 在远端主机执行指令

当需要在两台主机间执行指令,可以用 SSH 直接传送要执行的指令,该远端主机直接执行,而无需登入另一台主机。 以下是具体指令的语法: 上面的 “user” 是登入帐号的使用者名称,remote.server 是远端主机,而 “ls -l” 是要执行的指令。当执行以上指令后,如果系统没有设定自动免密码登入,会询问远端主机的密码,输入密码后会在远端执行指令,并输出执行结果。 如果要同时执行多个指令,可以用 “;” 或 “&&” 分隔,例如: 或 如果需要用 Shell Script 执行远端指令,当需要在指令加入变量,需要将上面的单引号,改成双引号,例如: 最后是执行类似 top 这类互动模式的指令,只要加入 -t 选项即可: 除了 top 后,也可以用在 …

Shell Script 将数值补零

很多时在写程式时, 需要将一些数值补零, 例如 1 显示为 001, 以下是 Shell Script 的实现方法: Shell Script 的 printf 函式已经可以做到自动补零, 例如想将 8 显示为 “008”, 可以这样写: 除了在数值的前面补零外, 也有一种情况是在小数点补零, 例如数值 “8” 是整数, 但也要强制显示小数点后一个位, 可以这样写: 如果想将上面的结果放到变量, 可以这样写: …

Shell Script 遇到错误时自动退出离开

Shell Script 里面的指令, 如果没有用条件控制 (例如 if), 不管之前的指令执行结果如何, 每个指令也会逐一执行, 例如: 上面的程式码很简单, 只是用 cd 指令转换到 /path/dir 目录, 然后执行 rm 指令, 将所有 .txt 结尾的档案删除。 但如果执行 cd 指令的时出错, 例如 /path/dir 目录不存在, 或者没有权限进入, 那便会在当前目录删除所有 …

Shell Script 检查变量字串长度

在 Shell Script 读取输入时, 很多时需要按字串的长度作出不同的处理, 而 Shell Scrit 检查变量的字串长度十分简单, 写法如下: 上面的程式码会检查用户输入的变量 “string”, 然后检查 string 变量的长度, 如果字串长度大过 10, 会显示 “Error!”, 并结束程式执行; 如果变量的字串长度等如或小于 10, 会继续执行。