【发布时间】:2017-01-03 08:09:55
【问题描述】:
试图在 linux bash 中实现某些目标,但失败了 :(
我有这个 ls 命令,用于在目录中获得 cvs 文件的良好输出。我还使用 awk 命令来删除我不需要的权限信息
ls -lrth *.csv | awk '{print $5, $6, $7, $8, $9}'
但现在我希望在 .sh 脚本文件中运行它。 如果我在脚本中写这样的东西,它就可以工作
LIST=$(ls -lrth *.csv)
echo $LIST
但如果我将 awk 添加到它,它不会,因为这些参数,我很生气。
LIST=$(ls -lrth *.csv | awk '{print $5, $6, $7, $8, $9}')
echo $LIST
如何在可执行的 sh 文件中正确写入?
【问题讨论】:
-
@usr - 失败是指没有错误消息,但也没有输出,没有列出任何内容。
-
@anubhava - 上面说,我正在尝试从 ls 命令生成的文件权限信息中删除
-
a) 不要解析 ls 的输出,b) 总是引用你的 shell 变量,c) 不要给非导出变量全大写的名字。 d) 到目前为止,您向我们展示的内容没有理由在使用/不使用 awk 的情况下表现不同,因此问题在于您迄今为止尚未向我们展示的一些代码。
-
解决了,我只是运行 ls 命令而不将其分配给变量,它工作了
-
我怀疑你的问题是当你回应它时你没有引用
$LIST(即你应该使用echo "$LIST",而不是echo $LIST)而且你只是给我们一个红色当你说LIST=$(ls -lrth *.csv); echo $LIST做了你想做的事情时,鲱鱼。