DALLASCAO.COM

Site of Cao Shouguang, English to Chinese translator

Test if a variable is number in bash

Test if a variable is number in bash
Among the solutions provided at stackoverflow.com, I like this one the most: var=a if [ "$var" -eq "$var" ] 2>/dev/null; then echo number else echo not a number fi 2 means the standard error output. If $var is a number, [ “$var” -eq “$var” ] will not output and error message. And an error message […]Read More

Chang the swap behavior of linux

Chang the swap behavior of linux
The default swappiness is 60. It can be 0-100, with the bigger value more pages will be swapped to harddisk from memory. If you want to use more physical memory and less swap, decrease the number. echo 40 > /proc/sys/vm/swappinessRead More

What you may not know about linux sed

What you may not know about linux sed
1. Separator can be any symbol. This also works: echo '/etc/python3/dummy' | sed 's|/etc/python3/|/etc/python2/|' output: /etc/python2/dummy In this example above I used | to replace the normally used separator /Read More

Two ways to write literal strings containing line breaks to a file

Two ways to write literal strings containing line breaks to a file
1. Use printf printf "line 1 line2 line 3 containing a variable: ${PWD} line 4 contains a quote mark ' and \" ">temp.txt cat temp.txt Notice double quote ” needs to be escaped. 2. Use Here Doc: cat > temp.txt temp.txtRead More

split string in Bash

split string in Bash
emails="email1@gmail.com;email2@gmail.com;email3@gmail.com" emails=${emails//;/ } #replace ; with space arr_emails=($emails) # put them into an array for item in ${arr_emails[@]}; do echo $item done In fact this works also. You don’t really need arrays emails="email1@gmail.com;email2@gmail.com;email3@gmail.com" emails=${emails//;/ } #replace ; with space for item in $emails; do echo $item done But with using arrays, you can do many […]Read More