官术网_书友最值得收藏!

  • Bash Cookbook
  • Ron Brash Ganesh Naik
  • 266字
  • 2021-07-23 19:17:37

How to do it...

Let's begin our activity as follows:

  1. Open up a new script called echo-mayhem.sh in your favorite editor and a new terminal. Enter the following contents and then execute the script at the prompt:
#!/bin/bash

# What about echo?
echo -n "Currently we have seen the command \"echo\" used before"
echo " in the previous script"
echo
echo -n "Can we also have \t tabs? \r\n\r\n?"
echo " NO, not yet!"
echo
echo -en "Can we also have \t tabs? \r\n\r\n?"
echo " YES, we can now! enable interpretation of backslash escapes"
echo "We can also have:"
echo -en '\xF0\x9F\x92\x80\n' # We can also use \0NNN for octal instead of \xFF for hexidecimal
echo "Check the man pages for more info ;)"
  1. After reviewing the results of echo-mayhem.sh, create another script called printf-mayhem and enter the following contents:
#!/bin/bash
export LC_NUMERIC="en_US.UTF-8"
printf "This is the same as echo -e with a new line (\\\n)\n"

DECIMAL=10.0
FLOAT=3.333333
FLOAT2=6.6666 # On purpose two missing values

printf "%s %.2f\n\n" "This is two decimal places: " ${DECIMAL}

printf "shall we align: \n\n %.3f %-.6f\n" ${FLOAT} ${FLOAT2}
printf " %10f %-6f\n" ${FLOAT} ${FLOAT2}
printf " %-10f %-6f\n" ${FLOAT} ${FLOAT2}

# Can we also print other things?
printf '%.0s-' {1..20}; printf "\n"

# How about we print the hex value and a char for each value in a string?
STR="No place like home!"
CNT=$(wc -c <<< $STR})
TMP_CNT=0

printf "Char Hex\n"

while [ ${TMP_CNT} -lt $[${CNT} -1] ]; do
printf "%-5s 0x%-2X\n" "${STR:$TMP_CNT:1}" "'${STR:$TMP_CNT:1}"
TMP_CNT=$[$TMP_CNT+1]
done
  1. Execute the contents of printf-mayhem.sh and review the contents for subtle differences.
主站蜘蛛池模板: 尖扎县| 龙海市| 民丰县| 辽宁省| 敖汉旗| 栾城县| 乌恰县| 玛沁县| 长治县| 屯昌县| 池州市| 景谷| 巴南区| 汕头市| 龙江县| 姚安县| 讷河市| 三原县| 锡林郭勒盟| 镇巴县| 长子县| 南城县| 曲麻莱县| 吉水县| 资阳市| 弥渡县| 思南县| 广西| 葫芦岛市| 崇仁县| 苏州市| 辽宁省| 文化| 都江堰市| 石家庄市| 新晃| 勐海县| 安岳县| 辉县市| 新泰市| 利津县|