похоже, что все эти люди не знали, как на самом деле заставить приглашение перейти BACK к показу [root@domain]~#
Мне трудно поверить, что он не получил прямого ответа на свой вопрос. Потому что я ищу тот же самый ответ.
%userx@voided ~>>$cat /etc/skel/.bashrc
# .bashrc
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '
не меняет приглашение, чтобы указать root, когда человек использует su - password для перехода к root. мой показывает только #
когда он делает то же самое.
Опираясь на решение одного из многих подобных вопросов:
#!/bin/sh
IFS=+
printf '%s = %s\n' "$*" "$(($*))"
"$*"
расширит до позиционных параметров (аргументы командной строки ), разделенные $IFS
. Мы устанавливаем IFS
на +
отдельно.
"$(($*))"
использует $((... ))
, которая является арифметической подстановкой, для вычисления арифметического значения $*
, аргументов командной строки с +
в -между ними.
printf
используется для вывода двух строк с =
между ними.
Тестирование:
$./script.sh 1 2 3
1+2+3 = 6
$./script.sh -1 2 3
-1+2+3 = 4
$./script.sh 1 2 3 4 2 2 3 1
1+2+3+4+2+2+3+1 = 18
В приведенном выше сценарии отсутствует проверка предоставленных аргументов командной строки, чтобы убедиться, что они являются целыми числами. Это делается для одного значения в вопросе «Проверка того, является ли введенное число целым числом ».
#! /usr/bin/gawk -E
BEGIN {
sum = 0
if (ARGC > 1) {
for (i = 1; i < ARGC; i++) {
n = strtonum(ARGV[i])
printf "%s", i == 1 ? n : n < 0 ? " - " (-n) : " + "n
sep = " + "
sum += n
}
print " = "sum
}
}
inf
, nan
или такие вещи, как 0x1p6
), шестнадцатеричные и восьмеричные числа .
в английском языке, ,
во многих других языках ). printf("%.6g")
, а целые числа — как при использовании printf("%d")
. Внутри gawk
использует типы компилятора C double
и long
, но в последних версиях можно указать использовать произвольную точность с опцией -M
и переменной PREC
. $ locale decimal_point
.
$ that-script 1.23 -1e2 0x30 010 garbage
1.23 - 100 + 48 + 8 + 0 = -42.77