我编写了一个基本脚本,它将目录更改为特定路径并显示文件夹列表,但我的脚本显示了我的脚本所在的当前文件夹的文件列表,而不是我在脚本中指定的文件列表。
这是我的脚本:
#!/bin/bash
v1="$(ls -l | awk '/^-/{ print $NF }' | rev | cut -d "_" -f2 | rev)"
v2=/home/PS212-28695/logs/
cd $v2 && echo $v1
有谁知道我做错了什么?
您当前的脚本实际上毫无意义。v1
variable 不是按您预期执行的命令,但由于$()
语法,它实际上是分配时的输出,ls -t
这就是为什么您在当前目录中有文件的原因,因为这是您在那个特定时刻的工作目录。所以你应该做普通的
ls -t /home/PS212-28695/logs/
编辑
它运行但是如果我需要将 ls -t 输出存储到变量怎么办
那么这是您已经拥有的相同语法,但具有适当的参数:
v1=$(ls -t /home/PS212-28695/logs/)
echo ${v1}
如果出于任何原因您想要,cd
那么您必须出于与我上面解释的相同的原因进行预先设置v1
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句