如何在bash脚本中省略某些输入变量(例如$ 1和$ 2)的同时使用$ *?

骨质

例如,

elif [[ $append = $1 ]]
then
  touch ~/directory/"$2".txt
  echo "$variable_in_question" >> ~/directory/"$2".txt

创建一个包含所有后续输入的文本文件"$2",或者追加一个现有所有输入后的文本文件,用"$2"什么代替"$variable_in_question"第4行?

我基本上想要"$*",但是省略"$1""$2"

点心

您可以使用bash参数扩展来指定范围,这也适用于位置参数。对于$3…… $n,它将是:

"${@:3}" # expands to "$3" "$4" "$5" …
"${*:3}" # expands to "$3 $4 $5 …"

要知道,无论$@$*忽略第一个参数$0如果您想在自己的情况下使用哪一个:很有可能需要引号$@不要使用$*,除非你明确地想要的参数进行单独报价。

您可以尝试如下操作:

$ bash -c 'echo "${@:3}"' 0 1 2 3 4 5 6
3 4 5 6
$ echo 'echo "${@:3}"' >script_file
$ bash script_file 0 1 2 3 4 5 6
2 3 4 5 6

请注意,在第一个示例$0中,第一个参数填充了该参数,0而在脚本中使用时,$0则用脚本的名称填充了该参数,如第二个示例所示。脚本的名称bash当然第一个参数,只是通常不会这样认为–将脚本制成可执行文件并称为“直接”也是如此。因此,在第一个示例中,我们有$0= 0$1=1等。在第二个示例中,我们$0= script_file$1= 0$2=1等。${@:3}选择以开头的每个参数$3

可能范围的一些其他示例:

 # two arguments starting with the third
$ bash -c 'echo "${@:3:2}"' 0 1 2 3 4 5 6
3 4
 # every argument starting with the second to last one
 # a negative value needs either a preceding space or parentheses
$ bash -c 'echo "${@: -2}"' 0 1 2 3 4 5 6
5 6
 # two arguments starting with the fifth to last one
$ bash -c 'echo "${@:(-5):2}"' 0 1 2 3 4 5 6
2 3

进一步阅读:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何同时使用qicharts2和ggplots2?

如何同时使用swift 2和swift 3?

如何同时使用SSE2和PREFETCHh指令?

如何同时使用变量和移动变量?

如何在Ant生成脚本中运行JUnit测试,同时从生成的jar中省略测试类?

我如何在Java游戏库(Slick2D)中同时使用运动和动画

如何在 OAuth 2 请求中同时使用 Microsoft Graph 和 Office 365 范围?

Python-如何同时使用OpenCV2和OpenCV3

如何使用Homebrew在Mac上同时安装Python 2和3?

如何同时使用Tensorflow tf.nn.Conv2d进行训练和预测?

如何同时使用带有 PuTTY ppk、密码和 2FA 的 FileZilla?

为什么会发生此错误“输入_2_1:0同时被获取和获取”?

同时使用新变量和分配变量

如何在$ 1和$ 2的bash脚本中包含自定义命令选项?

如何在bash脚本中同时获取PIPESTATUS和输出

使用bash重定向和输入变量编写脚本

使用urwid同时输入和输出

同时使用危险模式和输入-Sweetalert

2>&1 和日志文件同时

使用 ndarray2 中的列填充 ndarray1,同时跳过 ndarray1 中的某些列索引

BASH 在脚本中同时使用位置参数和可选参数

创建表格时,是否可以同时在蜂巢中使用2个字段终止符(例如','和'。')?

如何同时使用析取和验证?

如何同时使用 WHERE BETWEEN 和 GROUP BY

pytest如何同时使用gdetoption和parameterize

pytest如何同时使用getoption和parameterize

如何同时使用substrin和instr pyspark

如何同时使用点击和价值?

如何同时使用按键和提示库?