Мой код для создания исполняемого скрипта
touch script.sh && echo "echo 'Hello World'" > script.sh && sudo chmod +x script.sh
command-line
scripts
Шам Фиорин
источник
источник
sudo
очень экономно. Привыкание бросать его может быть опасным. В этом случае у вас есть сценарий, который вы создали, так что вы можете делать с разрешениями все, что вам угодно, без sudo.Ответы:
Вы можете пропустить всю
touch
команду, и нет необходимости использоватьsudo
. Чтобы еще больше сократить командную строку, вы можете использоватьbash
History Expansion, чтобы сохранить имя файла во второй раз и пропустить лишние пробелы:Расширение History заменяет
!#:3
четвертое слово из текущей командной строки, которое в вашем случае является именем файлаscript.sh
. Конечно, это нужно адаптировать в случае, если вы измените первую команду, например:Обратите внимание, что действительный скрипт нуждается в шебанге :
Если вам нужна эта цепочка команд чаще, я рекомендую определить функцию , поэтому вам просто нужно будет ввести имя функции. Подобным образом адаптируемый - хотя и более длинный - способ - использование переменной, содержащей имя файла:
Если ваше имя файла содержит специальные символы, не забудьте правильно их заключить в кавычки .
источник
install
Команда (часть GNU Coreutils вместе сcp
,mv
,rm
и т.д.) можно скопировать файл , а также установить владельца и права доступа и создание родительских каталогов по мере необходимости. По умолчанию это сделает новый файл исполняемым. Он не понимает '-
', но/dev/stdin
может использоваться вместо:В приведенном выше тексте используется строка here для предоставления текста в stdin, который немного короче, чем его передача. Аргументам
echo
не нужно заключать в кавычки, если они не содержат символов со специальным значением.источник
install <(echo echo Hello World) script.sh
Я предпочитаю использовать
cat
для таких задач, как это:источник
Вы также можете опустить весь chmod и использовать вместо него umask перед эхом. Должно сэкономить вам несколько байтов. Shebang не обязателен, если вы используете команды, которые понятны каждой оболочке (в основном bourne и C).
источник
umask
для установки исполняемого бита по умолчанию ...