Shell 中常用特殊符号汇总


特殊符号

以下是关于Shell中常用特殊符号的表格,包含符号、描述和示例,方便快速参考。

符号描述示例
#注释符号,后面的内容不会被执行# This line is a comment.
~表示当前用户的主目录cd ~
;指令分隔符cd ~/backup; mkdir startup
;;case 语句中选项的结束case "$fop" in help) ...;; esac
,运算中的分隔let "t1 = ((a = 5 + 3, b = 7 - 1))"
/表示目录或进行除法运算cd /etc/rc.d
\转义字符,取消特殊符号的作用echo "Backup dir, \$bkdir = $bkdir"
``管道,将一个指令的输出作为下一个指令的输入
!反逻辑条件if [ "$?" != 0 ]; then ... fi
:什么事都不干且返回状态值0: > f.$$
?通配符,匹配一个任意字符ls a?a1
*通配符,匹配任意字符(包括零个字符)ls a*a
**次方运算let "sus=2**3"
$变量替换echo "vrs = $vrs"
${}变量的正规表达式echo "${#parameter}"
$*代表所有参数,作为一个整体echo "$*"
$@代表所有参数,保持区分echo "$@"
$#表示参数的数量echo "$#"
$?上一个命令的返回状态echo "$?"
()指令组,执行后不会影响外部环境的变量(a=1; echo $a)
(( ))算数运算(( a = 10 ))
{ }定义一组命令,不会产生子Shell{ a=1; echo "a=$a"; }
[ ]条件判断if [ "$a" -eq 1 ]; then ... fi
[[ ]]更强大的条件判断`if [[ $a -gt 5
&&逻辑与command1 && command2
``
&背景符号,指令放入后台执行tar cvfz data.tar.gz data &
\<...\>单字边界,正则表达式grep '\<the\>' FileA
+运算中的加法expr 1 + 2 + 3

这个表格汇总了Shell中的常用特殊符号及其功能,方便查阅与学习。希望能对你撰写博客有所帮助!

井号 # (Comments)

井号用于添加注释。当井号出现在行首或完整指令后时,它后面的内容不会被执行。

# This line is a comment.
echo "a = $a" # a = 0
# 不执行的指令
# echo "a = $a" # a = 0

波浪号 ~ (Home Directory)

波浪号代表当前用户的主目录。

cd ~          # 切换到主目录
cd ~user      # 切换到指定用户的主目录
  • ~+:当前工作目录,与 pwd 相同。
  • ~-:上次工作目录。

分号 ; (Command Separator)

分号用于分隔多个指令,使其在同一行中连续执行。

cd ~/backup; mkdir startup; cp ~/.* startup/.

连续分号 ;; (Terminator)

用于 case 语句,表示选项的结束。

case "$fop" in
  help) echo "Usage: Command -help -version filename";;
  version) echo "version 0.1";;
esac

逗号 ,

用于运算中的分隔。

let "t1 = ((a = 5 + 3, b = 7 - 1, c = 15 / 3))"
echo "t1= $t1, a = $a, b = $b"

斜线 / (Forward Slash)

用于表示目录或除法运算。

cd /etc/rc.d     # 切换到指定目录
let "num1 = ((a = 10 / 2))" # 除法

倒斜线 \

用于转义字符,取消特殊符号的作用,或表示行继续。

# 取消别名
\rm ./*.log
# 转义变量
echo "Backup dir, \$bkdir = $bkdir"

管道 |

用于将一个指令的输出作为下一个指令的输入。

who | wc -l  # 计算当前用户数量

惊叹号 ! (Negate or Reverse)

用于反逻辑条件。

if [ "$?" != 0 ]; then
  echo "Executes error"
  exit 1
fi

冒号 :

在Bash中,表示“什么事都不干”且返回状态值0。

: > f.$$  # 创建或清空文件

问号 ? (Wild Card)

匹配一个任意字符。

ls a?a1  # 匹配 a1, a2 等

星号 * (Wild Card)

匹配任意字符(包括零个字符)。

ls a*a  # 匹配 a1a, a2a 等

双星号 **

在运算中,表示次方运算。

let "sus=2**3"
echo "sus = $sus" # 输出 8

钱号 $ (Dollar Sign)

用于变量替换。

vrs=123
echo "vrs = $vrs" # 输出 123

变量的正规表达式 ${}

Bash支持多种用法,如:

  • ${parameter:-word}
  • ${parameter:=word}
  • ${parameter:?word}
  • ${#parameter}

$*$@

  • $*:代表所有参数,作为一个整体。
  • $@:代表所有参数,保留各个参数的区分。
echo "$*"  # 输出所有参数
echo "$@"  # 输出所有参数,保持区分

$#

表示参数的数量。

echo "$#"  # 输出参数的个数

$?

表示上一个命令的返回状态。

echo "$?"  # 输出上一个命令的返回状态

() (Command Group)

用于将一组指令括起来,执行后不会影响外部环境的变量。

(a=1; echo $a)  # 输出 1
echo $a  # 不会输出任何内容

(( ))

用于算数运算,是Bash的内建功能。

(( a = 10 ))
echo "initial value, a = $a"
(( a++ ))
echo "after a++, a = $a"

{ } (Block of Code)

定义一组命令,不会产生子Shell。

{ a=1; echo "a=$a"; }
echo "a=$a"  # 输出 a=1

[ ][[ ]]

  • [ ]:用于条件判断。
  • [[ ]]:更强大的条件判断,支持逻辑运算符。
if [ "$a" -eq 1 ]; then
  echo "a is 1"
fi

if [[ $a -gt 5 || $a -lt 9 ]]; then
  echo "Condition met"
fi

&&||

  • &&:逻辑与。
  • ||:逻辑或。
command1 && command2  # command2 仅在 command1 成功时执行
command1 || command2  # command2 仅在 command1 失败时执行

背景符号 &

在指令末尾使用,表示将指令放入后台执行。

tar cvfz data.tar.gz data > /dev/null &

单字边界 \<...\>

用于正则表达式,定义单字的边界。

grep '\<the\>' FileA  # 匹配完整单词 the

加号 +

在运算中表示加法。

expr 1 + 2 + 3  # 输出 6

Shell 特殊符号总结

在Shell编程中,特殊符号具有重要的作用,能够帮助用户有效地控制命令执行、数据流转和条件判断。以下是对Shell中常用特殊符号的总体总结:

  1. 注释与目录:

    • #用于注释,使后面的内容不会被执行。
    • ~表示当前用户的主目录,方便用户快速导航。
  2. 指令分隔与逻辑控制:

    • ;可以分隔多条指令,使它们在一行内执行。
    • &&||用于条件控制,分别表示逻辑与和逻辑或。
  3. 管道与重定向:

    • |管道符将一个命令的输出传递给下一个命令。
    • ><用于重定向输入输出,实现文件和命令间的数据交互。
  4. 变量与参数处理:

    • $用于变量替换,${}用于更复杂的变量操作。
    • $#表示传递给脚本的参数数量,$@$*则用于获取所有参数。
  5. 条件判断与循环:

    • [][[ ]]用于条件判断,后者提供更强大的功能。
    • (){}用于命令组和子Shell,允许将多条命令作为一个整体执行。
  6. 算数运算与通配符:

    • (( ))用于算数运算,提供更直观的计算方式。
    • *?**是通配符,便于文件匹配和搜索。
  7. 背景执行与状态返回:

    • &用于将命令放入后台执行,允许用户继续进行其他操作。
    • $?获取上一个命令的返回状态,以便于错误处理。

总结

掌握Shell中的特殊符号对于编写高效的脚本至关重要。通过合理使用这些符号,用户可以提高命令行操作的灵活性和效率,简化复杂的操作流程。学习和理解这些符号的作用,不仅能够帮助用户更好地进行系统管理,也为后续深入学习Shell编程打下良好的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值