Напишите сценарий оболочки Unix, чтобы переименовать файл с именем common.txt в Corporate.txt и проверить, успешно ли он переименован

Возможно, в автономном режиме вы запустили службу vsftpd. И вам просто нужно убить процесс vsftpd, не нужно менять файл конфигурации.

-3
28.02.2020, 15:00
2 ответа

if mv common.txt corporate.txt; then echo "Success"

-1
28.04.2021, 23:21

Если вы переименовываете только один файл, нет необходимости перебирать все позиционные параметры, однако, если вы перебираете все позиционные параметры, вы должны использовать:

for f in "$@"; do

$@когда двойные кавычки позволят вам иметь параметры, которые содержат пробелы, не подвергаясь разбиению на слова, и, как правило, более надежны по нескольким причинам.


В вашем скрипте mv common.txt corporate.txtпереименует файл в соответствии с параметрами (, если файл common.txtсуществует в том же каталоге, что и скрипт ), но вы не выполняете проверку, чтобы убедиться, что он был переименован. Лично я бы указал полный путь к файлу и, возможно, использовал бы его в качестве учебного опыта для нескольких немного ненужных дополнений :

.

И некоторые необходимые дополнения:


Используя все это, вы можете создать скрипт вида:

#!/bin/sh

file=/path/to/common.txt
path=$(dirname "$file")

if mv "$file" "${path}/corporate.txt"; then
    printf '%s\n' "${file}: renamed successfully" >&2
else
    printf '%s\n' "Failed to move: $file" >&2
fi
1
28.04.2021, 23:21

Теги

Похожие вопросы