linux - Shell脚本,将命令值保存到变量

标签 linux shell echo

我试图在同一行中打印 VARI 的值,后跟一个逗号,这样我就可以拥有这些值的 csv 文件,但我无法保存值 VARI = 'cat 文件名 |头-1 |剪切 -d, -f${i}'

i=0
while (( i<130)) ;
do
  if [[ $i -eq 1 ||  $i -eq 9 || $i -eq 12 || $i -eq 23 || $i -eq 25 || $i -eq 29 ]]
  then
    VARI = 'cat filename | head -1 | cut -d, -f${i}'
    echo  "$VARI ,"   
  fi
  let i=$i+1;
done

预期的输出是

4,abc,5,8,xyz,9

请告诉我我做错了什么,谢谢!

最佳答案

使用反引号(或 $() – 可以嵌套),而不是单引号:

VARI=`cat filename | head -1 | cut -d, -f${i}` # or:
VARI=$(cat filename | head -1 | cut -d, -f${i})

关于linux - Shell脚本,将命令值保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6958982/

相关文章:

linux - 从 Linux 用户空间检测修改过的文件

java - 如何从 Java 程序中调用 shell 脚本?

linux - sed 删除行(模式匹配)在我的情况下不起作用

php - 为什么 print 和 echo 在 "for"循环中表现不同

PHP echo 没有按预期工作

linux - 如何更新RPM版本?

linux - 在内核内部通过网络发送数据

c - 为私钥分配内存的合理安全、合理便携的方法是什么?

shell - 如何从shell中的二进制文件打印浮点值?

php - 如何将 echo() 的结果捕获到 PHP 中的变量中?