Comparison of Shell Script Execution Modes

方法概览

1
% echo "echo 'Hello Script'" > script.sh

方式1:直接运行可执行文件

1
2
3
% chmod +x script.sh
% ./script.sh
Hello Script

方式2:使用命令 sh 或 bash

1
2
3
4
5
% sh script.sh
Hello Script

% bash script.sh
Hello Script

方式3:使用命令 source 或 .

1
2
3
4
5
% source script.sh
Hello Script

% . ./script.sh
Hello Script

两种分类方法

是否需要执行权限

只有方式1需要执行权限。这是因为方式1把脚本作为可执行文件,自然需要执行权限,但方式2和方式3都是把脚本作为命令的参数,可以不具备执行权限

C++ Smart Pointer

原始指针

要想了解智能指针,就需要首先了解原始指针的痛点,原始指针有几点问题

Lvalues and Rvalues

说明: 本文探讨的是 C++11 以来的值类别

关于左值和右值,在不对其进行详细的划分时,简单的分类方法包括

  1. 左值持久,右值短暂
  2. 能取得地址得通常是左值,反之通常是右值(这一方法启示我们一个表达式的类型与其是左值还是右值无关,即相同类型的表达式既可以是左值也可以是右值)

右值引用是必须绑定到右值的引用,通过&&获取右值引用

C++ Type Conversion

普通类型

类类型

对于类类型,编译器只能自动执行一步隐式类型转换.例如从字符串字面值转换为string类型,但是无法继续将string隐式转换为其他类型

0%