Shell 脚本更新公网 IP 到 dynu DDNS 服务

dynu更新ip的服务尽然被Q了, 使用代理进行更新ip,但更新的是代理服务器的ip地址。

基于以上的矛盾点,我想到的解决思路是:

  1. 不使用代理获取真实的公网IP并保存到变量
  2. 设置代理
  3. 将真实IP变量手动更新到dynu服务
  4. 定时执行此脚本
Read more   2019/7/17 posted in  技术杂谈 Shell

Shell 函数

有两种格式可以在shell脚本中创建函数:

function name {
    commands 
}

name() {
    commands
}
Read more   2019/6/27 posted in  Shell

Shell sed 命令快查

替换文件内容

如果将文件名传递给sed,它会将文件内容输出到stdout。要是我们想就地(in place)修 改文件内容,可以使用选项-i:

# 直接在文件中替换
sed 's/PATTERN/replacement/' -i filename

# 替换后的数据会替换原始文件
sed -i 's/PATTERN/replacement/' filename
sed 's/pattern/replace_string/g' file
# /g 可以进行全局的匹配
# /2g 替换第2次出现的匹配
Read more   2019/5/8 posted in  Shell

Shell grep 命令快查

基础使用方式

grep pattern filename

grep -E 代表使用正则表达式进行筛选:

grep -E "[a-z]+" filename
Read more   2019/5/8 posted in  Shell

Shell 脚本获取iOS项目路由地址

本案例涉及到的 shell 命令包括:

find 
grep
sed
Read more   2019/5/7 posted in  Shell

Shell中的常用条件判断

if condition; then
commands; 
else if condition; then
commands; 
else
commands; 
fi
  • [ condition ] && action; # 如果condition为真,则执行action
  • [ condition ] || action; # 如果condition为假,则执行action
Read more   2019/1/9 posted in  Shell

Shell中使用基本运算

Bash shell使用let、(( ))和[]执行基本的算术操作。工具expr和bc可以用来执行高级操作。

let命令可以直接执行基本的算术操作,不需要添加$符号

num1=5
num2=3
let res=num1+num2
echo $res
Read more   2019/1/9 posted in  Shell

Shell 中使用变量 和 环境变量

变量

var = value

如果value不包含任何空白字符串,就不需要将其放在引号中,否则必须使用单引号或双引号。

注意,var = value 不同于 var=value。把 var=value 写成 var = value 是一个常见的错误。 两边没有空格的等号是赋值操作符,加上空格的等号表示的 是等量关系测试。

Read more   2019/1/9 posted in  Shell

终端基础认知

username@hostname$

$表示普通用户,#表示管理员用户root。

shell脚本通常以 shebang 起始:
#!/bin/bash

shebang这个词其实是两个字符名称(sharp-bang)的简写。在Unix的行话里,用sharp或hash(有时候是mesh)来 称呼字符“ # ”, 用bang来称呼惊叹号“ ! ”

Read more   2018/12/10 posted in  Shell