Линукс bash
Написать простейший bash скрипт, который выведет текст, представленный в качестве аргумента, имя редактора, использованного для создания файла, и будет ли текст длиной более 10 символов в одной строке, разделенный точкой с запятой и заключенный в двойные кавычки (например, somescript this is text should output "this is text"; "nano"; "more then 10 symbols").
fivaproldzh1337:
Аргументом скрипту является файл?
Или скрипт создает файлик?
А, понял)
Я не уверен, что можно таким образом использовать текстовые редакторы. Могу ли я уточнить, вам это задание где-то задали или оно нужно для ваших личных нужд?
Сам пробую. Вот оригинал Use nano editor to create script from the scratch which will output the text provided as an argument, the name of the editor used to create the file and whether or not the text is longer then 10 symbols on the same line divided by semicolons and surrounded by double quotes (e.g. somescript this is text should output "this is text"; "nano"; "more then 10 symbols").
!/bin/bash
echo "\"${1}\";\"nano\";\"more then 10 symbols\""| head -n 1 | cut -c -10
Тут выводит, но не так как нужно
echo "\"${1}\";\"nano\";\"more then 10 symbols\""| head -n 1 | cut -c -10
Тут выводит, но не так как нужно
somescript this is text should output "this is text"; "nano"; "more then 10 symbols") вот так нужно чтобы вывело
Ответы
Ответ дал:
1
#!/bin/bash
if [ `echo "$1" | awk '{print length}'` -gt 10 ]
then
echo '"$1";"nano";"more than 10 symbols"'
else
echo '"$1";"nano";'
fi
#Если я правильно понял, что нужно
Чуть занят, через час разберусь
у вас в итоге выводит "this is text"; "nano"?
ок
надо чтобы вывело то, что ты передаешь в скрипт в качестве аргумента
Вот на такую строчку замените echo \"$1\"';"nano";"more than 10 symbols"'
так? !/bin/bash
read var;
echo $var;
if [ `echo "$1" | awk '{print length}'` -gt 10 ]
then
echo \"$1\"';"nano";"more than 10 symbols"'
else
echo '"$1";"nano";'
fi
read var;
echo $var;
if [ `echo "$1" | awk '{print length}'` -gt 10 ]
then
echo \"$1\"';"nano";"more than 10 symbols"'
else
echo '"$1";"nano";'
fi
Да
И второй echo аналогично измените
спасибо, я сделал по-другому кстати
#!/bin/bash
if [ `echo "$1" | awk '{print length}'` -gt 10 ]
then
echo '"'$1'"'";"'"'nano'"'";"'"'more than 10 symbols'"'
else
echo $1';"nano";'
fi
if [ `echo "$1" | awk '{print length}'` -gt 10 ]
then
echo '"'$1'"'";"'"'nano'"'";"'"'more than 10 symbols'"'
else
echo $1';"nano";'
fi
Вас заинтересует
1 год назад
1 год назад
2 года назад
2 года назад