Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
将命令输出指定给shell脚本变量_Shell_Unix - Fatal编程技术网

将命令输出指定给shell脚本变量

将命令输出指定给shell脚本变量,shell,unix,Shell,Unix,如何将命令输出分配给shell脚本变量 echo ${b%?} | rev | cut -d'/' -f 1 | rev ${b%?}给我一个路径。例如:/home/home1 上面的命令将home1作为输出。我需要将此输出分配给shell脚本变量 我尝试了下面的代码 c=${b%?} |rev | cut -d '/' -f 1 | rev echo $c 但它不起作用 要将某个命令的输出分配给变量,需要使用命令替换: variable=$(命令) 对于您的情况: c=$(echo {b

如何将命令输出分配给shell脚本变量

echo ${b%?} | rev | cut -d'/' -f 1 | rev
${b%?}
给我一个路径。例如:
/home/home1

上面的命令将home1作为输出。我需要将此输出分配给shell脚本变量

我尝试了下面的代码

c=${b%?} |rev | cut -d '/' -f 1 | rev

echo $c

但它不起作用

要将某个命令的输出分配给变量,需要使用命令替换:

variable=$(命令)

对于您的情况:

c=$(echo {b%?} |rev | cut -d '/' -f 1 | rev)
只是想知道你为什么不试试

basename ${b} 
或者只是

echo ${b##*/}
home1
如果要修剪路径中的最后一个数字,请执行以下操作:

b="/home/home1"
echo $b
/home/home1
b=${b//[[:digit:]]/}
c=$(echo ${b##*/})
echo ${c}
home

要将某个命令的输出分配给变量,需要使用命令替换:

variable=$(命令)

对于您的情况:

c=$(echo {b%?} |rev | cut -d '/' -f 1 | rev)
只是想知道你为什么不试试

basename ${b} 
或者只是

echo ${b##*/}
home1
如果要修剪路径中的最后一个数字,请执行以下操作:

b="/home/home1"
echo $b
/home/home1
b=${b//[[:digit:]]/}
c=$(echo ${b##*/})
echo ${c}
home
就这样,

variable=`command`
就这样,

variable=`command`

使用
backticks进行嵌套是困难的
应该对c=`${b%?}| rev | cut-d'/'-f1 | rev`没有问题尽管此代码可能有助于解决问题,但它没有解释为什么和/或如何回答问题。提供这种额外的环境将大大提高其长期教育价值。请在回答中添加解释,包括适用的限制和假设。特别值得一提的是,为什么
$(…)
优于
`…`
。使用
倒勾进行嵌套是困难的
应该不会对c=`${b%?}rev|rev|cut-d'/'-f1| rev`有任何问题,尽管这段代码可能有助于解决问题,但它没有解释为什么和/或如何回答这个问题。提供这种额外的环境将大大提高其长期教育价值。请在回答中添加解释,包括适用的限制和假设。特别值得一提的是,为什么
$(…)
优于
``