Unix ksh上的命令行子替换未分配给varibale
上面的命令行替换不起作用ksh,每次变量为空,也尝试了下面的命令Unix ksh上的命令行子替换未分配给varibale,unix,less-unix,Unix,Less Unix,上面的命令行替换不起作用ksh,每次变量为空,也尝试了下面的命令 var2=$(echo "{$1}" | grep 'Objects that are still invalid after the validation:' | cut -d : -f2 | sed 's/ //g') echo $var2 请帮我解决这个问题。ssh之后,该命令正在远程服务器上使用。如果在没有ssh的情况下直接在服务器上执行,则这些命令将在远程服务器上工作。在$1中应该是什么?第一个问题
var2=$(echo "{$1}" | grep 'Objects that are still invalid after the validation:' | cut -d : -f2 | sed 's/ //g')
echo $var2
请帮我解决这个问题。ssh之后,该命令正在远程服务器上使用。如果在没有ssh的情况下直接在服务器上执行,则这些命令将在远程服务器上工作。在
$1
中应该是什么?第一个问题是,它应该写成$1
或${1}
。把它写成{$1}
显然是错误的
然后是grep
和cut
的无用用法。以下工作:
var2="$(echo "{$1}" | grep 'Objects that are still invalid after the validation:' | cut -d : -f2 | sed 's/ //g')"
var2=`echo "{$1}" | grep 'Objects that are still invalid after the validation:' | cut -d : -f2 | sed 's/ //g'`
var2=`echo "$1" | grep 'Objects that are still invalid after the validation:' | cut -d : -f2 | sed 's/ //g'`
$1是一个输入字符串变量,使用了{$1}、{$1}、$1所有值,并尝试使用简单命令,但没有一个被分配给varibale。那么您的输入肯定有问题。以下操作不会出现问题:
x=“验证后仍然无效的对象:foo-bar”&&var2=$(echo${x}sed-ne的///g'-e的/objectsthatarestillivalidafthevalidation:\(.\)/\1/p')&&echo${var2}
。输出:foobar
var2=$(echo ${1} | sed -ne 's/ //g' -e 's/Objectsthatarestillinvalidafterthevalidation:\(.*\)/\1/p')