Mój kod do stworzenia skryptu wykonywalnego
touch script.sh && echo "echo 'Hello World'" > script.sh && sudo chmod +x script.sh
Mój kod do stworzenia skryptu wykonywalnego
touch script.sh && echo "echo 'Hello World'" > script.sh && sudo chmod +x script.sh
Odpowiedzi:
Możesz pominąć całą touchkomendę i nie musisz jej używać sudo. Aby jeszcze bardziej skrócić linię poleceń, możesz użyć bashrozszerzenia historii, aby zapisać nazwę pliku po raz drugi i pominąć niepotrzebne spacje:
echo "echo 'Hello World'" >script.sh&&chmod +x !#:3
Rozszerzenie historii zastępuje !#:3się czwartym słowem z bieżącego wiersza poleceń, którym w Twoim przypadku jest nazwa pliku script.sh. Oczywiście należy to dostosować w przypadku modyfikacji pierwszego polecenia, np .:
>script.sh echo "echo 'Hello World'"&&chmod +x !#:1
Zauważ, że poprawny skrypt wymaga shebang :
>script.sh echo -e "#!/bin/bash\necho 'Hello World'"&&chmod +x !#:1
Jeśli potrzebujesz częściej tego łańcucha poleceń, polecam zdefiniowanie funkcji , w ten sposób wystarczy wpisać nazwę funkcji. Podobnie adaptowalnym - choć dłuższym - sposobem jest użycie zmiennej przechowującej nazwę pliku:
f=script.sh;>$f echo "echo 'Hello World'"&&chmod +x $f
Jeśli twoja nazwa pliku zawiera znaki specjalne, nie zapomnij podać ich poprawnie .
installKomenda (część GNU Coreutils wraz z cp, mv, rm, itd.) Można kopiować jednocześnie ustawienie jego własności i uprawnień oraz tworzenia katalogów nadrzędnych jako niezbędny plik. Domyślnie nowy plik będzie wykonywalny. Nie rozumie „ -”, ale /dev/stdinzamiast tego można go użyć:
install /dev/stdin script.sh <<< "echo Hello World"
W powyższym użyto ciągu „ tutaj ”, aby podać tekst na stdin, który jest nieco krótszy niż wstawienie go. Argumenty, echoktóre nie wymagają cytowania, chyba że zawierają znaki o specjalnym znaczeniu.
install <(echo echo Hello World) script.sh
Wolę używać catdo takich zadań:
cat > script.sh && chmod +x script.sh
#!/bin/sh
echo 'Hello World'Enter
Ctrl+D
Możesz także pominąć cały chmod i zamiast tego użyć echa umask przed echem. Powinieneś zaoszczędzić kilka bajtów. Shebang jest opcjonalny, o ile korzystasz z poleceń zrozumiałych dla każdej powłoki (głównie bourne i C).
umaskDomyślnie nie można używać do ustawiania bitu wykonywalnego ...
sudobardzo oszczędnie. Przyzwyczajenie się do rzucania nim może być niebezpieczne. W tym przypadku jesteś właścicielem skryptu, który utworzyłeś, dzięki czemu możesz robić, co chcesz, z uprawnieniami, bez sudo.