将变量传递给Linux bash命令参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将变量传递给Linux bash命令参数相关的知识,希望对你有一定的参考价值。

我有以下bash脚本提出异常:“cut:option需要一个参数 - 'f'”。

它会从/ etc / passwd中删除第5列,用':'字符分隔。

我应该如何将$变量传递给选项的参数?

variable=5; cut -d':' -f$variable < /etc/passwd
答案

$variable为空时你得到这个:

$ variable=
$ cut -d: -f$variable </etc/passwd
cut: option requires an argument -- 'f'
Try 'cut --help' for more information.

2意见建议:

  1. 确保变量具有值
  2. quote your variables,在这种情况下,将选项与参数分开:至少当值为空时你会得到一个更安全的错误 $ cut -d : -f "$variable" </etc/passwd cut: fields are numbered from 1 Try 'cut --help' for more information.
另一答案

为避免这种情况,请使用

set -o nounset

然后,如果variable未设置你将收到

bash: variable: unbound variable

以上是关于将变量传递给Linux bash命令参数的主要内容,如果未能解决你的问题,请参考以下文章

Linux bash基础特性二

在bash中将包含空格的变量传递给命令[重复]

通过回声管道将python变量(字符串)传递给bash命令[重复]

将变量传递给现代中继中的片段容器

如何找到传递给 Bash 脚本的参数数量?

linux shell bash 内置变量参考