在ls输出中包含换行符?

时间:2017-10-12 20:22:45

标签: linux bash shell scripting

练习一些Bash脚本:

  1 #!/bin/bash
  2 
  3 read -p "Input the path to a file or directory: " TARGET_PATH
  4 
  5 if [ -f "${TARGET_PATH}" ]
  6 then
  7     echo "${TARGET_PATH} is a file!"
  8     echo $(ls ${TARGET_PATH} -l)
  9 elif [ -d "${TARGET_PATH}" ]
 10 then
 11     echo "${TARGET_PATH} is a directory!"
 12     echo $(ls ${TARGET_PATH} -l)
 13 else
 14     echo "${TARGET_PATH} is not a file or directory."
 15 fi

如果TARGET_PATH是一个文件,ls -l命令运行得很好就可以正常工作。

但如果它是一个目录,ls -l的输出会将许多项目排成一行。

我尝试在该实例中迭代ls -l命令,但它按空格分割所有内容,因此每一个部分都以新行结束。

如果我们在终端输入ls -l,是否有办法输出类似于我们期望它的内容?

1 个答案:

答案 0 :(得分:1)

使用-1选项(这是第一个,而不是小写的L)到ls将使每行输出一个项目。

ls -1l "${TARGET_PATH}"