我在脚本中使用了以下命令
sudo su - user -c bash <<EOF
cp /home/test.txt /opt/
EOF
如果我在终端上使用sudo su - user,Unix不会问我密码,但是如果我尝试运行脚本,终端会问我密码,如果我删除了EOF部分,那么当我退出会话时,剩下的代码会运行。我想在用户模式sudo下运行该命令,但是终端不需要向我询问密码。
如果我使用
sudo su - user <<EOF
code
EOF
我在.bash_profile中有一个错误:参数太多
如何读取文本文件并将其保存到bash中的变量中?我的密码在这里:
#!/bin/bash
TEXT="dummy"
echo "Please, enter your project name"
read PROJECT_NAME
mkdir $PROJECT_NAME
cp -r -f /home/reza/Templates/Template\ Project/* $PROJECT_NAME
cd $PROJECT_NAME/Latest
TEXT = `cat configure.ac ` ## problem is here !!!
我在bash脚本中使用ed搜索文件;/命令将显示我不想要的内容。我试图重定向>/dev/null 2>&1,但这对我没有用。
文本文件foo.txt
a
b
c
bash脚本bar.sh
ed -s foo.txt << EOF
/b/
EOF
> /dev/null 2>&1
结果:
$ ./bar.sh
b
如何停止ed打印匹配的行b
我的文本文件按字母顺序排序。我想确定每一行是否都包含在下面的行中,如果包含,请删除这两行中的第一行。所以,举个例子,如果我...
car
car and trailer
train
..。我想以..。
car and trailer
train
我找到了"sed one-liners“页面,其中包含搜索重复行的代码:
sed '$!N;/^(.*)\n\1$/!P;D‘
..。我认为删除^可以解决这个问题,但它没有。
(使用不连续的行也可以做到这一点,但是我的文件运行到数千行,并且运行一个脚本可能需要几个小时或几天的时间。)
我正在尝试编写一个bash文件,它通常通常使用3个参数。当给定的参数超过3个时,就会调用一个额外的条件。此条件应将额外的参数导出到一个名为“超额”的文本文件中。这是我到目前为止掌握的代码:
if [ $# -gt 3]; then
for ((i = 4; i <= $#; i++)); do
echo "$i" >> "excess.txt"
done
fi
循环不是导出实际参数,而是导出数字4、5、6.到文本文件。
我不太清楚为什么会发生这种情况,因为我在echo语句中使用了“i”之前的美元符号。
我试图在ubuntu20.04上用bash脚本打开一个文本文件。bash脚本如下所示:
#!/bin/bash
"gedit /home/usr/textfile.txt"
在运行bash脚本时,我得到了以下输出:
./test.sh: line 3: gedit /home/usr/textfile.txt: No such file or directory
当用手将命令输入终端时,一切都正常。我试过用很多不同的刘海,但没什么用。我想这肯定是个相当明显的错误。