Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix ksh上的命令行子替换未分配给varibale_Unix_Less Unix - Fatal编程技术网

Unix ksh上的命令行子替换未分配给varibale

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中应该是什么?第一个问题

上面的命令行替换不起作用ksh,每次变量为空,也尝试了下面的命令

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')