我写了一个基本脚本,它将目录更改为特定路径并显示文件夹列表,但我的脚本显示了我脚本所在的当前文件夹的文件列表,而不是我在脚本中指定的文件。
这是我的剧本:
#!/bin/bash
v1="$(ls -l | awk '/^-/{ print $NF }' | rev | cut -d "_" -f2 | rev)"
v2=/home/PS212-28695/logs/
cd $v2 && echo $v1
有人知道我做错了吗?
答案 0 :(得分:3)
你当前的剧本没有任何意义。 v1
变量不是一个按预期执行的命令,但由于$()
语法,它在分配时实际上是ls -t
的输出而且是为什么你有当前目录中的文件,因为这是你特定时刻的工作目录。所以你应该做普通的
ls -t /home/PS212-28695/logs/
修改强>
它运行但是如果我需要将ls -t输出存储到变量
然后这是你已经拥有的相同语法,但有适当的参数:
v1=$(ls -t /home/PS212-28695/logs/)
echo ${v1}
如果您出于任何原因cd
,那么您必须执行之前设置v1
,原因与上述相同。