$0:获取当前执行脚本的文件名,包括路径。
[root@test script]# cat 0.sh
#!/bin/bash
echo $0
[root@test script]# sh 0.sh
0.sh
[root@test script]# cat 0.sh
#!/bin/bash
dirname "$0"
basename "$0"
[root@test script]# sh /byrd/script/0.sh
/byrd/script
0.sh
$n:获取当前执行的shell脚本的第N个参数,n=1..9,当n为0时表示脚本的文件名,如果n大于9,用大括号括起来like${10}.
[root@test script]# cat n.sh
#!/bin/bash
echo $1 $2 ${10}
[root@test script]# sh n.sh a b c d e f g h i j k l m n
a b j
[root@LAMP script]# sh n.sh {a..z}
a b j
[root@test script]# sh n.sh `seq 11`
1 2 10
$*:获取当前shell的所有参数,将所有的命令行参数视为单个字符串。
$@:这个程序的所有参数"$1" "$2" "$3" "...",这是将参数传递给其他程序的最佳方式,因此TA会保留所有内嵌在每个参数里的任何空白。
$#:获取当前shell命令行中参数的总个数。
[root@test script]# cat hashtag.sh
#!/bin/bash
echo "$#"
[root@test script]# sh hashtag.sh
0
[root@test script]# sh hashtag.sh 1 2 3
3
[root@test script]# sh hashtag.sh `seq 300`
300
[root@test script]# cat example.sh
#!/bin/bash
#Example
if [ $# -ne 2 ];then
echo "Error, please enter two parameters."
exit 1
else
echo "You did a good job."
fi
[root@test script]# sh example.sh a
Error, please enter two parameters.
[root@test script]# sh example.sh a b
You did a good job.
[root@test script]# sh example.sh a b c
Error, please enter two parameters.
$_:代表上一个命令的最后一个参数
$$:代表所在命令的PID
[root@LAMP script]# cat dollar.sh
#!/bin/bash
echo "$$" >/tmp/dollar.pid
while true
do
sleep 1
done
[root@LAMP script]# sh dollar.sh
################################################
[root@LAMP ~]# cat /tmp/dollar.pid
1483
[root@LAMP ~]# ps -ef |grep 1483
root 1483 1453 0 14:58 pts/1 00:00:00 sh dollar.sh
root 1532 1483 0 14:58 pts/1 00:00:00 sleep 1
root 1534 1496 0 14:58 pts/0 00:00:00 grep 1483
[root@LAMP ~]# ps -ef |grep dollar
root 1483 1453 0 14:58 pts/1 00:00:00 sh dollar.sh
root 1555 1496 0 14:58 pts/0 00:00:00 grep dollar
$!:代表最后执行的后台命令的PID
$?:代表上一个命令执行是否成功的标志,如果执行成功则$? 为0,否则不为0
[byrd@LAMP script]$ pwd
/byrd/script
[byrd@LAMP script]$ echo $?
0 #运行成功
[byrd@LAMP script]$ ls /root
ls: cannot open directory /root: Permission denied
[byrd@LAMP script]$ echo $?
2 #权限拒绝
[byrd@LAMP script]$ hahaha
-bash: hahaha: command not found
[byrd@LAMP script]$ echo $?
127 #未找到该命令
###########################################
[byrd@LAMP ~]$ cat /byrd/script/question_mark.sh
#!/bin/bash
#Example
ls -al /root >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "User is root"
else
echo "The user is not root"
fi
[root@LAMP script]# sh question_mark.sh
User is root
[root@LAMP script]# su - byrd
[byrd@LAMP ~]$ sh /byrd/script/question_mark.sh
The user is not root
分享到:
相关推荐
Linux Shell 变量详解 Linux Shell 变量是 Linux 命令行中非常重要的一部分,它们可以帮助用户更方便地执行任务和管理系统。下面我们将详细解释 Linux Shell 变量的概念和使用方法。 一、shell 变量的概念 Shell ...
- **`read`**: 是一个内置命令,用于从标准输入读取一行文本并将其分割成字段,然后将这些字段分配给Shell变量。 - `read variable`: 直接读取一行输入,并将其存储到指定的变量中。 - `read -p "提示信息..." ...
### Linux实验六 Shell变量知识点详解 #### 一、实验目的 1. **熟悉Shell变量**: - Shell变量是Shell编程中的基本概念之一,用于存储数据。这些数据可以是文件名、数字或文本字符串。 - 变量分为两种类型:用户...
### Linux Shell 命令详解 #### 变量与引用 在Linux Shell中,变量的引用和设置至关重要。使用`${变量名}`来引用变量的值,值得注意的是,在声明或赋值时无需使用`$`作为前缀。例如,你可以设置本地变量通过`变量...
Linux 特殊符号含义详解 在 Linux 中,有许多特殊符号和变量,它们具有特定...了解 Linux 中的特殊符号和变量的含义可以帮助我们更好地使用 Linux 系统和编写 Shell 脚本。这将使我们更好地掌握 Linux 的使用和开发。
Linux Shell编程入门实例讲解详解 Linux Shell编程是Linux系统中一种非常灵活的工具,通过shell编程可以自动化大量的任务,especially适合那些易用性、可维护性和便携性比效率更重要的任务。下面是Linux Shell编程...
### Linux主要Shell命令详解 #### 一、命令置换与特殊字符使用 在Linux环境中,shell命令的灵活性和强大性体现在其能够实现复杂的功能组合。其中一个关键特性是**命令置换**,即通过特定语法来获取一个命令的输出...
Linux Shell 变量设置知识点详解 Linux Shell 变量设置是一种非常重要的技术,在 Linux 中,每个用户登录系统之后都会有一个属于自己的 bash shell,每个人都能够使用 bash 执行命令来收取自己的邮箱,但是 bash 是...
5. **Shell变量**: - 用户自定义变量,如:`name="John"`,然后可以通过 `$name` 引用。 - 环境变量,如:`PATH`、`HOME`,影响整个Shell会话。 - 特殊变量,如:`$0`(脚本名)、`$#`(参数数量)、`$@`(所有...
### Linux下的Shell与Make知识点详解 #### 一、Shell基础 **1.1 什么是Shell** - **定义**: Shell作为用户与Linux操作系统之间的接口,它既是命令解释器也是支持多用户的编程环境。 - **功能**: 支持多用户操作...
### Linux主要Shell命令详解 #### 一、Shell概念与作用 **Shell** 是连接用户与Linux操作系统的桥梁,用户通过Shell与系统进行交互。在Linux系统中,Shell扮演着多种角色,包括命令语言、命令解释程序以及程序设计...
理解如何在脚本中执行程序以及如何导出Shell变量,可以更好地控制Shell脚本的行为,以及子Shell与父Shell之间变量的隔离与共享。这些知识不仅有助于编写更有效的Shell脚本,还能帮助在管理Linux系统时做出更明智的...
Linux 环境变量是 Linux 操作系统中一个重要的概念,它决定了系统的行为和用户的体验。环境变量是由一系列的名称和值组成的,它们可以影响系统的行为和应用程序的运行。 1. 环境变量的分类 环境变量可以分为两类:...
- **常用变量**:包括命令行参数($0到$9,以及${10}以上),位置参数个数($#),所有位置参数($*和$@),后台进程PID($!),上一条命令的退出状态($?),脚本进程ID($$),还有HOME、PWD、OLDPWD等环境变量。 ...
### Linux Shell 特殊字符和控制字符详解 #### 一、Shell特殊字符 Shell特殊字符在Linux Shell编程中起着非常重要的作用,它们用于控制Shell的行为、格式化输出以及进行各种复杂的操作。以下是对给定内容中提到的...
### Linux Shell编程知识点详解 #### 一、Shell编程概述 **Shell** 在 Unix/Linux 系统中扮演着极其重要的角色,既是用户与操作系统交互的主要接口,也是一种强大的编程语言。通过 Shell 编程,用户不仅可以自动化...
### Linux Shell脚本攻略知识点详解 #### 一、Shell脚本基础 1. **Shell简介**: - **定义**:Shell是用户与Linux操作系统之间的交互界面。 - **功能**:执行命令、处理文件、运行程序等。 - **种类**:Bash、...
### Linux Shell 编程基础知识详解 #### 一、Shell 简介 Shell 是 Linux 系统中的一个重要组成部分,它充当着用户与操作系统内核之间的桥梁。用户可以通过 Shell 输入各种命令,Shell 负责解释这些命令并将它们传递...
**Shell十三问详解** Shell,作为Linux/Unix操作系统中的命令解释器,是用户与系统交互的重要工具。它不仅用于执行命令,还能通过脚本编程实现自动化任务。在学习和使用Shell的过程中,经常会遇到一些核心问题,...