我想使用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
Run Code Online (Sandbox Code Playgroud)
但是当我检查文件输出时,我得到了这个:
!/bin/bash
curr=1634
if [ -lt 4477 ]; then
curr=406;
echo > /sys/class/backlight/intel_backlight/brightness;
fi
Run Code Online (Sandbox Code Playgroud)
我尝试使用单引号,但输出也带有单引号.我该如何避免这个问题?
我有一个mvn必须以非root用户身份构建的项目,但默认情况下gitlab-ci允许运行者以root用户身份运行.我gitlab.com通过设置gitlab-ci.yml文件来使用跑步者.我尝试创建一个用户并切换到这样:
$ useradd ***
$ su -***
$ whoami
root
Run Code Online (Sandbox Code Playgroud)
它仍然说我是根.我怎么解决这个问题?
我正在尝试远程执行此脚本:
perl -i -pe 's/nginx-cache\K(\d+)/ ++($n = $1) /e; s/MYSITE\K(\w+)/ ++($n = $1) /e;' $SITENAME
Run Code Online (Sandbox Code Playgroud)
使用以下解决方案:
ssh -T root@$IPSRV <<EOI
perl -i -pe 's/nginx-cache\K(\d+)/ ++($n = $1) /e; s/MYSITE\K(\w+)/ ++($n = $1) /e;' /etc/nginx/sites-available/$SITENAME"
exit
EOI
Run Code Online (Sandbox Code Playgroud)
我也试过没有ssh的"-T"选项
ssh root@$IPSRV "
> perl -i -pe 's/nginx-cache\K(\d+)/ ++($n = $1) /e; s/MYSITE\K(\w+)/ ++($n = $1) /e;' /etc/nginx/sites-available/$SITENAME"
Run Code Online (Sandbox Code Playgroud)
但不幸的是它不起作用:
syntax error at -e line 1, near "( ="
syntax error at -e line 1, near "( ="
Execution of -e aborted due to …Run Code Online (Sandbox Code Playgroud) 以下bash脚本的结果是输出中的"空行"
ssh dev@my_service <<EOF
START_SERVICE_TIME_IS_UP=124
echo $START_SERVICE_TIME_IS_UP
exit
EOF
Run Code Online (Sandbox Code Playgroud)
无法理解为什么.我希望在输出中看到"124".远程服务器正在运行Red Hat linux.
我正在尝试运行一个切换用户的脚本(遵循此答案)。我无法在其中设置变量。我尝试了很多事情,但最基本的是:
sudo -u other_user bash << EOF
V=test
echo "${V}"
EOF
Run Code Online (Sandbox Code Playgroud)
更现实的是,我正在做类似以下的事情:
sudo -u other_user bash << EOF
cd
V=$(ls)
echo "${V}"
EOF
Run Code Online (Sandbox Code Playgroud)
每次我尝试使用该变量时,V它都会被取消设置。如何设置变量?