前言全局说明
shell 获取返回值、上一次命令、上次命令参数
一、获取上一次命令
1. $?,上一次命令执行结果
成功0; 失败非0
echo $?
2. !!, 执行上一次命令,是!-1的快捷方式
3. !n, 表示执行 history 里第n条命令,如!2表示执行ls 6 7 8 9 10
4. !-n 表示倒数第n条命令,如!-3表示执行echo 11 12 13 14 15
5. !string 表示以string开始的最近的一条命令,如!echo表示echo 21 22 23 24 25
6. !?string? 表示含有string的最近的一条命令,如!?6?表示cat 16 17 18 19 20
7. ^string1^string2^ 表示执行上一条命令,并将其中的第一个string1替换为string2,如果string1不存在则替换失败,不会执行命令。
8. !# 表示当前命令现在已经输入的部分,如echo 1 2 !#会执行echo 1 2 echo 1 2
二、获取上一次命令参数
1. !!:0 表示上一命令的第0个参数,即命令本身,得到的是echo
2. !2:n 表示第2个命令的第n个参数,如!2:2得到的是7
3. !!:^ 表示上一命令第1个参数,可进一步简写为!^,与!!:1同义,得到的是21
4. !!: $ 表示上一命令的最后一个参数,可进一步简写为!$,得到的是25
5. !!:x-y 表示第x到第y个参数,-y意为0-y,如!-2:3-4得到的是18 19
6. !!: * 表示上一命令的参数部分,可进一步简写为!,如!!:得到的是21 22 23 24 25
7. !!:n* 跟!!:n-$同义
8. !!:n- 意为!!:n-$-1,从第n个参数到倒数第二个参数,如!-2:3-得到的是18 19
(4和6条说明,冒号后有空格,使用时删掉,写文章时,不加空格被解释成 emoj 表情了)
三、打印上一次命令
echo !!
注意: 不要和变量一样前面加$.
四、
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
https://www.cnblogs.com/tianyapiaozi/archive/2012/09/21/bash_history_arguments.html
https://blog.csdn.net/weixin_34174105/article/details/91519627