我有以下命令:
echo "exec [loc_ver].[dbo].[sp_RptEmpCheckInOutMissingTime_2]" |
/home/mdland_tool/common/bin/run_isql_prod_rpt_2.sh |
grep "^| Row_2" |
awk '{print $15 }'
仅适用于前面的echo
。我试图将此行设置为变量。我已经尝试了引号,括号和后面的刻度,没有运气。
有人能告诉我将其设置为变量的正确语法吗?
答案 0 :(得分:0)
$result=$(exec [loc_ver].[dbo].[sp_RptEmpCheckInOutMissingTime_2]" | /home/mdland_tool/common/bin/run_isql_prod_rpt_2.sh | grep "^| Row_2" | awk '{print $15 })
答案 1 :(得分:0)
如果您希望在数组中存储更多列,则应使用此语法(如果只有一个结果,这也很好):
#!/bin/bash
result=( $( echo "exec [loc_ver].[dbo].[sp_RptEmpCheckInOutMissingTime_2]" |
/home/mdland_tool/common/bin/run_isql_prod_rpt_2.sh |
grep "^| Row_2" |
awk '{print $15 }' ) )
答案 2 :(得分:0)
因为您要求both meanings of your question:
首先,想象一个更简单的案例:
echo asdf
如果要执行此命令并将结果存储在某处,请执行以下操作:
$(echo asdf)
例如:
variable=$(echo asdf)
# or
if [ "$(echo asdf)" == "asdf" ]; then echo good; fi
通常,$(command)
执行command
并返回输出。
如果你想存储命令本身的文本,你可以这样做:
variable='echo asdf'
# or
variable="echo asdf"
# or
variable=echo\ asdf
不同的格式取决于您的命令内容。所以现在一旦你有了存储命令的变量,你就可以简单地用$(command)
语法执行命令。但是,请注意命令本身是变量。因此,您将通过以下方式执行命令:
$($variable)
作为一个完整的例子,我们将两者结合起来:
command="echo asdf"
result=$($command)
echo $result