私は次の非常に基本的なコマンド置換スクリプトを書いています。
#!/bin/bash
files=$(ls *.fastq);
echo $files
ディレクトリには複数の.fastqファイルが含まれており、echoコマンドを使用してそのファイルを出力したいと思います。
上記のスクリプトは、各 fastq ファイル名の間にスペースを含む fastq ファイルを出力します。
このように使ってみると
#!/bin/bash
files=$(ls *.fastq);
echo "$files"
結果を新しい行に印刷します。
なぜですか?これはコマンドの置き換えに関連していますか?
ありがとう
ベストアンサー1
ls
別の行に配置したので、改行があります。シェルは引用符なしでスペースで区切られた各テキストを別々の引数としてコマンドに渡すため、改行は引用符なしで消えます。
注:コマンドの置き換えはシェルによって行われます。仕方ないls
したがって、必要はありませんls
。
したがって、あなたはできます
#!/bin/bash
echo *.fastq
または
#!/bin/bash
files="*.fastq"
echo "$files"