Processing math: 100%

shell 中的位置参数

1、位置变量

        位置变量并不是用户自定义的,而在shell中可以直接使用,这样一些约定俗成的规则就可以了。

        定义:当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数

2、位置参数变量

$n : n为数字,

$0代表脚本本身

1 9代表第1~9参数,10以上的参数需要用大括号包含,如:${10}

$@:命令行所有参数,但每个参数区别对待,推荐使用这个

$*:命令行所有参数,所有参数视为一个整体

$#:参数总个数

$$:脚本运行的当前进程ID号

$!: 上一个进程的ID号

3、 @*的区别

$*:命令行所有参数,所有参数视为一个整体

$@:命令行所有参数,但每个参数区别对待

1
2
3
4
5
6
7
8
9
10
11
# 双引号中"*"和"@"区别
echo "\$*的输出如下:"
for i in "$*"; do  # 多个参数当成一个参数传递了
   echo $i
done
 
echo "  "
echo "\$@的输出如下:"
for i in "$@"; do  # 多个参数分开传递
   echo $i
done

 

 4、set -- 和 exec 的用法

4.1 在Shell中,set -- a b c 的命令用于设置位置参数(Positional Parameters)。

  • 语法set -- [arguments]

  • 用途:

    • set -- 用于重新定义位置参数,即 $1$2, ... ,通常用于重设或覆盖脚本启动时传递给它的参数。
    • 在 set -- /bin/node_exporter "$@" 中:
      • /bin/node_exporter 被设置为新的位置参数 $1
      • "$@" 表示传递给当前脚本的所有原始参数,被添加为从 $2 开始的后续位置参数。
  • 结果: 在此命令执行后,位置参数的第一个元素为 /bin/node_exporter,随后是所有原有的参数。这样做的效果是准备好一组命令和参数供后续执行。

1
2
3
4
5
#!/bin/bash<br>
set -- a b c
echo "First argument: $1"
echo "Second argument: $2"
echo "Third argument: $3" 

4.2 exec

exec

  • 语法exec [command] [arguments]

  • 用途:

    • exec 用于用指定的命令替换当前的 Shell 进程。执行此命令后,原来的 Shell 进程会终止并被新的命令进程所替代。
    • 在 exec "$@" 中:
      • "$@" 展开为所有位置参数,所以 exec 实际上在执行 node_exporter 程序以及所有准备好的参数。
      • exec 不会启动一个新的子进程,而是替换了 Shell 本身的进程,因此没有返回到原来的脚本中,节省了系统资源。

 

posted @   凡人半睁眼  阅读(224)  评论(0编辑  收藏  举报
编辑推荐:
· 使用 .NET Core 实现一个自定义日志记录器
· [杂谈]如何选择:Session 还是 JWT?
· 硬盘空间消失之谜:Linux 服务器存储排查与优化全过程
· JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升
· [杂谈]后台日志该怎么打印
阅读排行:
· 2000 Star,是时候为我的开源项目更新下功能了
· 好消息,在 Visual Studio 中可以免费使用 GitHub Copilot 了!
· 工作中这样用MQ,很香!
· 使用 .NET Core 实现一个自定义日志记录器
· 没事别想不开去创业!
历史上的今天:
2020-06-28 亲和性和反亲和性 污点与污点容忍度
2020-06-28 二进制 k8s集群(docker)

阅读目录(Content)

此页目录为空

  1. 1 别叫我达芬奇 Lil Ghost小鬼
  2. 2 想对你说情话 I·D·C
  3. 3 可乐 赵紫骅
  4. 4 盗将行 花粥 / 马雨阳
  5. 5 安和桥 宇西
  6. 6 出山 花粥 / 王胜娚
  7. 7 海盗船长2.0 花粥 / 风子
  8. 8 云烟成雨 房东的猫
  9. 9 你的酒馆对我打了烊 陈雪凝
  10. 10 02的爱恋(Feat.约谈人参)(翻自 约谈人参) 多多poi
  11. 11 心做し 双笙(陈元汐)
  12. 12 晚安喵 艾索
  13. 13 吃货也想谈恋爱 Hanser
  14. 14 不待 忱忱老板
  15. 15 胭脂粉 周末
  16. 16 世间美好与你环环相扣 柏松
  17. 17 大田後生仔 丫蛋蛋
  18. 18 DJ Mr.Zi - 上天安排的最大嘛(DJ Mr.Zi / 可有道 remix) DJ Mr.Zi
  19. 19 マインドブランド 足首
  20. 20 通透 陈亦云
  21. 21 Illusionary Daytime Shirfine
  22. 22 有機酸-YELLOW(多人合唱×混响)(翻自 神山羊)(Reigo_叉叉 / 困先生 / 阿两 / 俺酱 remix) Reigo_叉叉 / 摸中摸 / 阿两 / 俺酱
  23. 23 一生独一(翻自 西彬呀) 阮言Ruany
  24. 24 despair LookedatHerFore
  25. 25 辞九门回忆 等什么君(邓寓君)
  26. 26 unravel (acoustic version) TK from 凛として時雨
  27. 27 占二曦
  28. 28 听!夏米尔! Hanser
  29. 29 下山 要不要买菜
  30. 30 哈尼宝贝 南征北战NZBZ
  31. 31 梅坞寻茶 南烛
  32. 32 爱你不是两三天 焦迈奇
  33. 33 攀登 (Live) 潘玮柏 / G.E.M.邓紫棋 / 艾热 AIR
  34. 34 bad guy Billie Eilish
  35. 35 I Never Told You 杨飞机
  36. 36 人间不值得 千里狗
  37. 37 广寒宫 丸子呦
  38. 38 那女孩对我说 (完整版) Uu
  39. 39 多想在平庸的生活拥抱你 隔壁老樊
  40. 40 春夏秋冬的你 王宇良
  41. 41 红昭愿 音阙诗听
  42. 42 一个 陈壹千
  43. 43 把孤独当做晚餐(翻自 群星) 井胧
  44. 44 教海鸥飞行的猫 王心凌
  45. 45 室内系的TrackMaker(YUNOMI)(翻自 nicamoq) Hanser
  46. 46 祝你爱我到天荒地老 颜人中 / VaVa毛衍七
  47. 47 我不是你的宋冬野 林啟得
  48. 48 父亲写的散文诗 刘乐瑶
  49. 49 山楂树之恋 程佳佳
  50. 50 summertime cinnamons / evening cinema
听!夏米尔! - Hanser
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

Loading

点击右上角即可分享
微信分享提示