Что делает данный скрипт bash
не совсем могу понять что делает команда var='ls-la'
Как я понимаю скрипт создаёт пустой файл выводит его содержимое, а после копирует его в две других глобальных переменных. Или я не прав?
#!/bin/bash
#!bin/sh
var='ls-la'
touch $1
echo $var > $1
cp $3 $2
Ответы (2 шт):
Автор решения: KoVadim
→ Ссылка
скрипт принимает 3 параметра - имена файлов. вначале создает файл с именем первого параметра и записывает туда текст 'ls-la' (странный текст, но думаю, там опечатка). А потом копирует файл, имя которого в третьем параметре в файл, имя которого - второй параметр. И все.
Автор решения: Stanislav Volodarskiy
→ Ссылка
Кажется этот скрипт - жертва редактора, который не придаёт значения знакам препинания.
#!/bin/bash
#!bin/sh
# первая строка выше - shebang.
# Выбирает интерпретатор для кода в этом файле (Unix only)
# вторая строка - испорченный бывший shebang. Ничего не значит.
# полагаю, редактор поменял кавычки и подредактировал пробелы
# получилось присвоение странной строки,
# а должно быть выполнение осмысленной команды
# было var='ls-la'
var=`ls -la`
# создаёт пустой файл с именем первого аргумента,
# если файл уже существует, обновляет его дату
# (следующая команда делает эту бесполезной)
touch $1
# записываем текст из переменной var в файл с именем из первого аргумента
# переменная var теперь содержит многострочный текст,
# заключим её в двойные кавычки, чтобы сохранить форматирование
# было echo $var > $1
echo "$var" > $1
# копируем файл с именем в третьем аргументе
# в файл с именем во втором аргументе
cp $3 $2