Linux Shell 编程入门
在 Linux 系统中,Shell 是一个重要的工具,它充当应用程序与计算机内核的交互桥梁。本文将介绍 Shell 编程的一些基本知识,并通过实例帮助你更好地理解和使用它。
什么是 Shell?
Shell 是一种解释型的编程语言,通过解释器将代码翻译成计算机可理解的语言。在 Linux 中,主要的解析器有两种:sh
和 bash
。在 CentOS 系统中,默认的解析器是 bash
。
示例:输出 “Hello, World!”
我们通过一个简单的实例来了解如何编写和执行 Shell 脚本。
-
新建一个文件
创建一个新的脚本文件,例如
helloworld.sh
。 -
编辑文件
打开文件并添加以下内容:
#!/bin/bash echo "Hello, World!"
-
执行脚本文件
执行脚本文件有两种方式:
-
使用
bash
命令(相对):bash helloworld.sh
-
增加可执行权限并直接执行(相对):
chmod +x helloworld.sh ./helloworld.sh
-
使用
bash
命令(绝对):bash /home/username/scripts/helloworld.sh
-
增加可执行权限并直接执行(绝对):
chmod +x helloworld.sh /home/username/scripts/helloworld.sh
-
- 根据最小权限原则,只授予文件所需的权限,一般只需要增加执行权限,所以使用
a+x
而不是777
。
输出示例
-
普通字符串
echo "It is Linux.CN"
输出:
It is Linux.CN
-
转义字符串
echo "\"It is Linux.CN\""
输出:
"It is Linux.CN"
-
变量
name="Arch" echo "$name is the best Linux Distro!"
输出:
Arch is the best Linux Distro!
-
换行符
echo -e "show me your code!\nThis is the second line."
输出:
show me your code! This is the second line.
-
命令执行结果
echo $(date) echo $(pwd)
输出:
-
第一个
echo $(date)
会输出当前系统的日期和时间,例如:Wed Sep 18 12:34:56 UTC 2024
-
第二个
echo $(pwd)
会输出当前的工作目录路径,例如:/home/user
-
变量
变量是用于存储数据的内存区域。自定义变量的示例如下:
greeting="Hello"
echo $greeting
注意事项
-
变量名可以是字母、数字和下划线的组合,但不能以数字开头。
-
等号两侧不能有空格。
-
变量默认为字符串,不能直接数字运算。
-
如果值中有空格,必须用单引号
'
或双引号"
引起来。 -
环境变量通常使用大写,如
PATH
、HOME
等,为了与用户自定义变量区分开来。 -
使用
unset
撤销变量:unset greeting
-
使用
readonly
创建静态变量,不能修改,不能撤销:readonly pi=3.14
特殊变量
$n
:表示执行脚本时传递给脚本的第n
个参数。$#
:表示传递给脚本的参数个数。$*
和$@
:获取所有参数。- 使用
"$*"
时,加双引号时,参数被视为一个整体的字符串。 - 使用
"$@"
时,参数被视为独立的元素,在需要单独处理每个参数时使用。 $?
:表示上一条命令是否成功执行,成功返回 0。
示例说明
假设有一个脚本 example.sh
,并以如下方式运行:
./example.sh arg1 arg2 arg3
-
$n
:$1
的值是arg1
$2
的值是arg2
$3
的值是arg3
-
$#
:- 表示传递给脚本的参数个数。在这个例子中,
$#
的值是3
。
- 表示传递给脚本的参数个数。在这个例子中,
-
$*
:- 将所有参数作为一个整体字符串。例如:
arg1 arg2 arg3
- 示例代码:
echo "$*"
- 输出为:
arg1 arg2 arg3
- 将所有参数作为一个整体字符串。例如:
-
$@
:- 将所有参数视为独立的元素。
- 示例代码:
for arg in "$@"; do echo "$arg" done
- 输出为:
arg1 arg2 arg3
-
$?
:- 表示上一条命令的退出状态码。成功执行返回
0
。 - 示例代码:
ls echo $?
- 如果
ls
成功执行,输出为:0
- 如果
ls
失败(例如目录不存在),输出为非0
的错误代码。
- 表示上一条命令的退出状态码。成功执行返回
通过以上内容和示例,可以开始基本的 Shell 编程,在 Linux 下实现自动化任务和系统管理。希望这篇文章对你有所帮助!
标签:脚本,输出,Shell,示例,编程,echo,sh,Linux From: https://blog.csdn.net/m0_58076578/article/details/142327068