Я хочу дать разрешение 777 для файлов в UNIX и изменить этот файл как файл DOS.

Я хочу добиться этого в файле shellscript. Я передам частичное имя файла из командной строки. Пример: если имя файла - employeealary, employeejob, тогда, если я пропущу сотрудник в командной строке, тогда всему файлу, который начинается с сотрудника, будет предоставлен доступ к 777, а также его необходимо изменить как файл DOS.

filename={$1}
chmod 777 $filename*
u2d -i $filename*

Когда я запускаю приведенный выше код, я получаю следующую ошибку.

chmod: WARNING: can't access employee* 

can't open employee*: No such file or directory in some location it specified 

Но когда я запускаю эти команды только в командной строке, все работает нормально

chmod 777 employee*
u2d -i employee*
0
user3738664 5 Окт 2018 в 04:21

1 ответ

Лучший ответ

Здесь нет необходимости в отдельной переменной. Просто делать

chmod 777 "$1"* && u2d -i "$1"*

Если вы предпочитаете это в виде трех строк:

filename="$1"
chmod 777 "$filename"* || exit $?
u2d -i "$filename"*

Тем не менее, 777 (доступный для записи, исполняемый файл), вероятно, не очень хорошая идея. Подойдет ли вам 755 (rwxr-xr-x) или даже 644 (rw-r--r--)? Если так, так будет лучше.

2
Daniel Pryden 5 Окт 2018 в 01:43