【发布时间】:2018-10-25 00:20:43
【问题描述】:
如何在同一行使用IFS 和awk $2 值?
例如
array=(
element:5001
element:5002
element:5003
element:5004
)
IFS=':'
for i in "${array[@]}"
do
set -- $i
part1=$1
part2=$2
cd $part1
# this following line is where I am having the issue.
# $2 equal to part2 from the string split, but the $2 to be
# awk value for $2
echo "$(ps aux | grep '[s]omething --port '$2'' | awk '{print $2}')"
# use part2 later in code
done
目前,我只能使用$2 from IFS split。
注意:我看到过有关使用 -v 选项和 awk 的帖子,但我相信那是您想要设置一个值以针对 awk 运行的时候。我想打印从awk 生成的$2。
【问题讨论】:
-
我不明白你的意思。你能举一个你想打印的例子吗?
-
echo的意义何在?echo "$(command)"与运行command相同。 -
awk命令用单引号括起来,所以它不应该将$2当作shell 变量处理,它会被当作awk表达式处理。 -
我很确定应该做你想做的事。
-
您不能在单个quotes 中加上单引号。并且单引号内的
$i不会替换变量值。