2016-12-14 2 views
2

Я пытаюсь выполнить скрипт, чтобы получить список файлов подкаталог:Присвоить переменный подкаталог для команды вывода в сценарии оболочки

#!/bin/bash 
PATH="/Movies" 
MOVIES=${PWD}${PATH} 
LS="$(ls -lp) ${MOVIES}" 

Но я получаю эту ошибку: LS: команда не found

Как добавить подкаталог в команду ls? Я буду очень благодарен за вашу помощь.

ответ

4

При установке переменной PATH в вашем скрипте вы перезаписали переменную PATH по умолчанию, которая сообщает вашей оболочке, где находятся ваши общие двоичные файлы. Либо изменить PATH имя переменной, или использовать полный LŠ путь '/ bin/LS'

#!/bin/bash 
PATH="/Movies" 
MOVIES=${PWD}${PATH} 
LS="/bin/ls -lp ${MOVIES}" 

$LS 

или

#!/bin/bash 
NOTPATH="/Movies" 
MOVIES=${PWD}${NOTPATH} 
LS="ls -lp ${MOVIES}" 

$LS 
более

информация here

+0

Я пробовал ваш пример, но этот вывод я получаю «ls -lp/Users/myUser/Movies» – user2924482

+0

Какой у вас желаемый результат? при использовании в моей оболочке (Ubuntu 16.04) оба списка содержимого каталога, как и ожидалось. вы имеете в виду, что сценарий перекликается с командой и не выполняет ее? – LukeS

+0

Выход, который я хочу, это список файлов в этом каталоге – user2924482

1

Это также хорошая идея, чтобы не использовать верхнийРЕГИСТР переменные в сценариях оболочки, поскольку они являются шаблоном по умолчанию для переменных среды системы. Таким образом, вы избежите перезаписи какой-либо переменной своей. Если необходимо, запустите команду env, чтобы увидеть, какие переменные установлены в вашем сеансе bash.