bash一些基础的内置命令
内置命令
echo
eval
exec
export
read
shift
echo命令
-n 不换行输出
-e 解析字符串中的特殊符号
\n 换行
\r 回车
\t 制表符 四个空格
\b 退格
$ echo 第一行;echo 第二行
第一行
第二行
# 不换行打印
$ echo -n 第一行;echo 第二行
第一行第二行
$ echo -e "你好\n今天周五"
你好
今天周五
# 打印命令 printf
$ printf "你好\t我是\t陌生人\n"
你好 我是 陌生人
eval
执行多个命令
在 Bash shell 中,$$ 表示当前进程的进程 ID,而 $# 表示命令行参数的数量。因此,echo \$$# 实际上是将 $ 和 $# 两个符号合并成了一个字符串,然后输出这个字符串。具体来说,它会输出一个字符串,其中包含 $ 和最后一个命令行参数的位置(即 $#)。例如,如果命令行有三个参数,echo \$$# 将输出 $3。这个命令可能有一些特殊的用途,但在一般情况下,它不是一个有效的命令。
简单点说 如果有两个入参 \$$#,就是$2,$#=2
$ cat a.sh
echo "Last argument is $(eval echo \$$#)"
echo "Last argument is $(eval echo $#)"
echo "Last argument is $(echo \$$#)"
$ sh -x a.sh one two three
++ eval echo '$3'
+++ echo three
+ echo 'Last argument is three'
Last argument is three
++ eval echo 3
+++ echo 3
+ echo 'Last argument is 3'
Last argument is 3
++ echo '$3'
+ echo 'Last argument is $3'
Last argument is $3
exec
不创建子进程,执行后续命令,且执行完毕后,自动exit
[root@south ~]# exec date
2023年 02月 24日 星期五 02:33:41 PST
Shared connection to 192.168.0.104 closed.
~ »

浙公网安备 33010602011771号