2017-10-12 12 views
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の出力は、多くの項目を1行に詰め込みます。

その場合、ls -lコマンドで反復しようとしましたが、すべての部分が空白で分割され、すべての部分が改行されてしまいました。

ターミナルにls -lと入力したのと同じように内容を出力する方法はありますか?

+3

変更は '$(LS $ {TARGET_PATH} -l)コースの'のLS -l "$ {TARGET_PATH}" ' – anubhava

+1

@anubhavaエコー!ありがとう、私はちょうど私がターミナルでこれを書いているかのように直接コマンドを書くことができることを完全に忘れてしまった –

答えて

0

オプション(それは小文字のLではありません)をlsにすると、1行に1つの項目が出力されます。

ls -1l "${TARGET_PATH}" 
関連する問題