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

问题描述 投票:0回答:2

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

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

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

variable=5; cut -d':' -f$variable < /etc/passwd
linux bash parameters command
2个回答
1
投票

$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.

0
投票

为避免这种情况,请使用

set -o nounset

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

bash: variable: unbound variable
© www.soinside.com 2019 - 2024. All rights reserved.