Команда touch
создаст только файл, но не создаст вложенную структуру каталогов. Для этого вы можете сначала использовать mkdir -p
, а затем выполнить команду touch
. Вы можете делать их вместе вот так:
$ mkdir -p dir1/dir2/dir3 && touch dir1/dir2/dir3/file.txt
Имейте в виду, что эта структура каталогов будет создана, начиная с любого каталога, в котором вы находитесь. Чтобы узнать это, используйте команду pwd
.
Просто переберите строку. Я также убрал ваши grep
и echo
за ненадобностью:
#!/bin/bash
read -p "Enter a string:" -r string
for((i=0; i<${#string};i++)); do
a=$(awk -v s="${string:$i:1}" '$1==s{print $2}' ~/Desktop/letter-table)
perl -e 'printf "%b\n", $ARGV[0]' "$a"
done
Или, лучше, принять строку в качестве аргумента:
#!/bin/bash
string="$*"
for((i=0; i<${#string};i++)); do
a=$(awk -v s="${string:$i:1}" '$1==s{print $2}' ~/Desktop/letter-table)
perl -e 'printf "%b\n", $ARGV[0]' "$a"
done
И запустите скрипт следующим образом:
$ foo.sh apple
1111001
10010001
10010001
1111001
10111010