2015-06-13 6 views
-2

У меня есть команда: 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.

+2

Работает для меня. Копирование сценария выше и выполнение меня приводит к «A», как и ожидалось. Вещи меняются только в том случае, если вы сбрасываете двойные кавычки из последней строки. – arkascha

+0

Вы уверены, что выполняете свой скрипт с помощью bash и не случайно используете какую-либо другую оболочку ('sh script.sh' с' sh', не указывая на bash)? – Phillip

+1

Возможно, вы запускаете его с помощью 'sh script_path', запустите его с помощью' bash script_path' ... – Jahid

ответ

Смежные вопросы