フォルダ内の最後のファイルを繰り返してコマンドを実行するスクリプトを作成しています。
#!/bin/bash
cd /home/Downloads
recent_files = ($(ls -t | head -20))
for file in "${recent_files[@]}"
do
./cmd $file
done
次の構文エラーが発生します。
line 3: syntax error near unexpected token `('
line 3: `recent_files = ($(\ls -t | head -20))'
ベストアンサー1
Bash変数の割り当てスキームは追加のvar=value
スペースを許可しません。
これを削除すると、ls -t | head -20
出力は配列として正しく割り当てられます。
したがって、スクリプトは次のようにする必要があります。
#!/bin/bash
cd /home/Downloads
recent_files=($(ls -t | head -20))
for file in "${recent_files[@]}"
do
./cmd $file
done