如果我跑:
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"
,但我无法实现预期的行为。
如何从文件中读取这些参数?
答案 0 :(得分:1)
要处理输入行中的引号和其他元字符,您需要使用item_id, number, result2, result
:
eval