练习一些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
,是否有办法输出类似于我们期望它的内容?
答案 0 :(得分:1)
使用-1
选项(这是第一个,而不是小写的L)到ls
将使每行输出一个项目。
ls -1l "${TARGET_PATH}"