У меня есть команда: printf "\x$(printf %x $char)"
. Когда я пишу в консоли: char=65; printf "\x$(printf %x $char)";
результат написан письмом A
. Но когда я бегу мой сценарий:Bash - команда работает в консоли, но не в скрипте
#!/bin/bash
char=65;
printf "\x$(printf %x $char)"
Результат написано: \x41
Я попытался написать sudo
перед командой printf
в сценарии и затем работает команда, как и ожидалось. Мне нужно найти решение без использования sudo
.
Работает для меня. Копирование сценария выше и выполнение меня приводит к «A», как и ожидалось. Вещи меняются только в том случае, если вы сбрасываете двойные кавычки из последней строки. – arkascha
Вы уверены, что выполняете свой скрипт с помощью bash и не случайно используете какую-либо другую оболочку ('sh script.sh' с' sh', не указывая на bash)? – Phillip
Возможно, вы запускаете его с помощью 'sh script_path', запустите его с помощью' bash script_path' ... – Jahid