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.
~ »

 

posted @ 2023-02-24 17:39  南哈哈  阅读(83)  评论(0)    收藏  举报