обновление ядра на очень старых версиях машин rhel

С

./script.sh <filename

вы прикрепляете стандартный ввод скрипта в целом к ​​файлу filename. Это означает, что все, что считывается со стандартного ввода в вашем скрипте, будет считываться из файла filenameдо тех пор, пока не будет достигнут конец этого файла.

Например, сценарий, который вы вызовете описанным выше способом и который просто изменяет все символы на верхний -регистр, может быть записан как

#!/bin/sh

tr 'a-z' 'A-Z'

Обратите внимание, что filenameили<filenameне является аргументом скрипта, а инструкцией оболочке настроить стандартный ввод скрипта из файла.

С другой стороны, если вы запустили скрипт, используя

./scripts.sh filename

тогда имя файла будет доступно как $1в скрипте, и вам придется ссылаться на это имя при чтении из файла:

#!/bin/sh

tr 'a-z' 'A-Z' <"$1"

или,

#!/bin/sh

filename=$1

tr 'a-z' 'A-Z' <"$filename"

Это позволит вам анализировать один и тот же файл несколько раз, в то время как чтение содержимого через стандартный ввод скрипта позволит вам прочитать файл только один раз (, если вы не сохранили его во временный файл в скрипте, используя, например cat >tmpfilename, а затем проанализировал это ).

Указание имен файлов сценария в командной строке также позволит вам обрабатывать любое количество файлов в цикле:

#!/bin/sh

for pathname do
    # code that processes "$pathname"
done
0
31.12.2020, 13:19
1 ответ

RHEL/Fedora/CentOS позволяют совместно устанавливать столько версий ядра Linux, сколько вам нужно.

2
18.03.2021, 22:39

Теги

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