arg="[email protected]"
firstChar=$("$arg" | cut -c 1)
Это результат как «x: command not found», где x - предоставленный аргумент, $ @. Почему это не работает?Аргументы/переменные в функции сценария Bash
Просто нужно получить первую букву аргумента (предоставляется только одна).
Добро пожаловать на переполнение стека. Вскоре прочитайте страницу [About] и страницу [Ask]. Вы говорите о функции Bash; вы не показывали функцию Bash - возможно, вы имели в виду скрипт, также упоминаемый в названии. Вы не показали, как вызывается код - кажется, вы передали ему аргумент 'x', и у вас нет программы под названием' x' на вашем компьютере. Возможно, вы имели в виду 'firstChar = $ (echo" $ arg "| cut -c 1)'? Но если это Bash, вы можете добиться большего с помощью [расширения параметров] (https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion), например 'firstChar = '$ { Arg: 0: 1} "'. –
Назначение '$ @' одному параметру поражает цель использования '$ @'. Либо «$ 1» будет достаточно, либо ваш код, по сути, сломан. Каково ожидаемое значение '$ @'? – chepner