【问题标题】:Store output in variable & use variable in command将输出存储在变量中并在命令中使用变量
【发布时间】:2013-07-15 13:27:56
【问题描述】:

我正在尝试运行命令并将其存储在变量中。

length=`last | grep foouser | wc -l` 

它工作正常,但是当我向命令中添加变量时它会中断。

value=$1
length=`last | grep $value | wc -l`

如何通过接受变量来使第二个示例工作?

【问题讨论】:

  • 究竟是什么中断了?此外,您可能希望在grep 命令中使用$value 代替$1
  • 好吧,抱歉,在grep之后是$value。

标签: linux bash shell unix terminal


【解决方案1】:

你实际上并不需要wc

length=$(last | grep -c "$value")

你可以改进变量名

num_logins=$(last | grep -c "$username")

【讨论】:

    【解决方案2】:

    你应该正确地引用你的变量。如果它们包含空格,您的脚本可能会中断:

    value="$1"
    length="$(last | grep "$value" | wc -l)"
    

    【讨论】:

    • 引用$value 作为grep 的参数很重要。引用这两个作业的 RHS 则更少;不执行分词,所以我不确定不引用它们是否有任何问题(尽管引用它们也没有什么坏处)。
    • 还是不走运,我正在输入value="foouser" /n length="$(last | grep "$value" | wc -l)",然后尝试回显$lenght,但它没有返回任何内容@Benoit @chepner
    • 您在这里输入了lenght。您是否也在终端输入错误?
    • 我认为你应该正确使用括号"${value}"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多