如何从文件中获取包含空格的参数?

时间:2015-05-25 20:26:35

标签: bash argument-passing args

如果我跑:

s.sh A B="     " C

s.sh

#!/bin/bash

count() {
    echo $#
    echo "$1" "$2" "$3"
}

count "$@"

我得到以下输出:

3
A B=         C

这是预期的。 不可!

但如果我跑:

s2.sh -f file.txt

s2.sh

#!/bin/bash

count() {
    echo $#
    echo "$1" "$2" "$3"
}    

while read line || [[ -n "$line" ]]
do
    echo -e "\nLine: $line"
    count $line
done < $2

file.txt的

A B="       " C

我没有得到类似的输出。它是:

Line: A B="       " C
4
A B=" "

实际:4个参数

预期:3个参数(与通过命令行提供的参数示例中提到的参数相同)

我还尝试在 file.txt 中使用以下几行:

A B='       ' C
A B=\"       \" C
A B=        C
A B=\ \ \ \ \ \ \  C

并使用count "$line",但我无法实现预期的行为。

如何从文件中读取这些参数?

1 个答案:

答案 0 :(得分:1)

要处理输入行中的引号和其他元字符,您需要使用item_id, number, result2, result

eval