我想使用cat <<EOF >>
以下代码将代码打印到文件中:
cat <<EOF >> brightup.sh
!/bin/bash
curr=`cat /sys/class/backlight/intel_backlight/actual_brightness`
if [ $curr -lt 4477 ]; then
curr=$((curr+406));
echo $curr > /sys/class/backlight/intel_backlight/brightness;
fi
EOF
但是当我检查文件输出时,我得到了:
!/bin/bash
curr=1634
if [ -lt 4477 ]; then
curr=406;
echo > /sys/class/backlight/intel_backlight/brightness;
fi
我试过用单引号引起来,但输出中也带有单引号。如何避免这个问题?
看到
—
年
man bash
并搜索Here Documents
。那里的所有细节。
作为一个后起之余,工艺替代现代语法
—
三位一体的用户
$(command)
代替`command`
。为了获取文件的内容,Bash具有$(<file)
#!/bin/bash
而不是其他任何内容-#!
是什么使它成为有效的shebang行,其后才是到达解释器的路径。