Bash 无法赋值

问题描述

有点问题。我是 bash 新手,我正在尽最大努力,但我不知道如何将所需的输出分配给变量。在提示符下运行此命令

wc -l data.txt | awk '{ print $1 }'

产生所需的结果 12。但是,如果我将它放在 test.sh 文件中,它将无法正常工作。我尝试了不同的引用,但我设法得到的只是整行作为一个字符串......

Test.sh

#! /bin/bash

# Count lines for data.txt files
data1=wc -l data.txt | awk '{ print $1 }'

echo "Lines in data.txt: $data1"

exit

解决方法

我想你想要:

data1="$(wc -l data.txt | awk '{ print $1 }')"

$() 语法使 bash 执行该表达式并将其替换为结果。

实际上,powershell 确实允许您像以前一样直接执行 = 赋值...