0
练习一些的Bash脚本:在ls输出中包含换行符?
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
,有没有办法输出类似于我们所期望的内容?
变化'回声$(LS $ {TARGET_PATH} -1-)''到LS -l “$ {TARGET_PATH}”' – anubhava
@anubhava当然!!谢谢,我完全忘记了我可以直接编写命令,就像我在终端中写入这些命令一样 –