Правильный способ изменить uname - это изменить заголовки компиляции и перекомпилировать, как предлагали другие. Но я не уверен, почему вы хотите испытывать столько проблем, если вы можете сделать что-то вроде,
alias uname 'uname \\!* | sed s/2.6.13/2.6.52/'
или даже
alias uname 'echo whatever'
Из раздела арифметической оценки руководства bash ,
Константы с начальным 0 интерпретируются как восьмеричные числа. Ведущие 0x или 0X обозначают шестнадцатеричное число. В противном случае числа принимают форму [основание #] n, где основание - это десятичное число от 2 до 64, представляющее арифметическое основание, а n - число в этом основании. Если base # опущен, используется основание 10. Цифры больше 9 представлены строчными буквами, прописными буквами, @ и _ в указанном порядке. Если основание меньше или равно 36, строчные и прописные буквы могут использоваться взаимозаменяемо для представления чисел от 10 до 35.
10 # N
или общая форма [base #] n
где 2 <= base <= 64
интерпретирует n
как число в этой базе.
Об этом упоминается в руководстве bash
, раздел Арифметика оболочки .
Обратите внимание, что эта функция не указана в POSIX, доступна только в bash
, ksh
и его производных, zsh
с базой от 2 до 36.
Конечно, это в man bash
Внутри АРИФМЕТИЧЕСКАЯ ОЦЕНКА
:
LESS=+/'\[base#\]n,' man bash
В противном случае числа принимают форму [base #] n, где необязательное основание - десятичное число. от 2 до 64 представляет собой арифметическое основание, а n - число в этом основании.