我从这个脚本中得到一个错误
#!/bin/bash
red="\033[31m"
green="\033[32m"
yellow="\033[33m"
blue="\033[34m"
pink="\033[35m"
cyan="\033[36m"
white="\033[37m"
echo ""
echo -e "${green} _ __ ___ ___ "
echo -e "${green} | '_ \/ __/ __|"
echo -e "${green} | | | \__ \__ \"
echo -e "${green} |_| |_|___/___/"
echo -e "${blue} Welcome My first program"
echo ""
Run Code Online (Sandbox Code Playgroud)
系统给我的错误
./my_first_program.sh: Line 14: unexpected token `| ' Syntax error near
./my_first_program.sh: Line 14: `echo -e "${green} |_| |_|___/___/"'
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我添加了一个名为 的脚本kafka,它运行两个永无止境的服务(kafka 服务器和 zookeeper)
我已经添加了这个脚本放到/etc/init.d
而且还增加了profile对
nano ~/.profile
Run Code Online (Sandbox Code Playgroud)
现在,当我打开我的Ubuntu, 并输入我的密码后,屏幕看起来像是被锁定了,等待脚本结束。
但是现在我无法访问我的虚拟机上的任何内容。
题:
如果有任何方法可以解决此问题并删除我添加的脚本?
它永远保持这样......
编写一个 shell 脚本,将当前目录中包含该词的所有文件移动hello到一个名为hello-world.
当前目录包含文件a b c d e和f出哪些文件a,c并f包含单词hello。
如何hello在当前目录的文件中搜索该单词并将满足条件的文件移动到另一个目录中hello-world?
我写了一个批处理文件,它建立到我能够这样做的 linux 服务器的连接,之后我试图将 mysqldump 带到某个目录,它具有所有 777 权限,但 linux 系统要求我“输入密码”只是空的,我需要手动按Enter,我只需要执行我的脚本,只需按一下Enter,执行就会自动发生。下面是一些细节。
批处理文件:
plink.exe -ssh user@host -m command.txt
Run Code Online (Sandbox Code Playgroud)
command.txt:
mysqldump -uve -p -R -E --single-transaction --databases mydb|gzip > /home/user/mydb_bkup.gz
Run Code Online (Sandbox Code Playgroud)
这是提示我输入密码的图像:

请为我提供一些输入,以便我可以输入密码并自动执行我的命令。
我正在寻找有关创建脚本以查找和替换文本文件中的特殊字符的一些指导。
我想出了这段伪代码,但填补空白有点困难:
CP按换行符查找和替换。Mr. Mime(带空格)& 替换Mr.Mime(不带空格)%并替换为空(也就是忽略它)“查找”代表“查找所有实例”。
我一直在研究sed,但我似乎无法找到如何处理这些特殊字符。任何想法都非常感谢。
编辑:正如特此所问的输入的一小段:
CP 1593
SSS
Sudowoodo?
ATK DEF STA IV
15 15 15 100.0%
counter
rock slide
CP 1262
SSS
Tangrowth?4
ATK DEF STA IV
15 15 15 100.0%
vine whip
grass knot
CP 1077
SSS
Mr. Mime?
ATK DEF STA IV
15 15 15 100.0%
confusion
psychic
Run Code Online (Sandbox Code Playgroud)
和预期的输出:
1593 SSS Sudowoodo? 15 15 …Run Code Online (Sandbox Code Playgroud) 我的主目录中有一个脚本文件,我已将其添加到Startup Applications. 然后.desktop在~/.config/autostart. 是否可以去掉中间人,直接从自动启动文件夹运行这个脚本?
脚本的结构是这样的:
command1
command2
command3
Run Code Online (Sandbox Code Playgroud)
我尝试通过重新排列脚本以使其成为一行:
command1;command2;command3
Run Code Online (Sandbox Code Playgroud)
这背后的想法是.desktop从文件中换出以下行:
Exec=/home/hiigaran/startupfile
Run Code Online (Sandbox Code Playgroud)
对此:
Exec=command1;command2;command3
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用。我猜不支持多个命令。有没有其他办法?
需要明确的是,我目前的做事方式没有任何特别的问题。一切都发挥应有的作用。我只是非常关注我的主目录内容。如果有更优雅的方式在登录桌面后运行我的脚本,那太好了。如果没有,也没什么大不了的。
据我了解,KDE 有一个 ~/.config/autostart-scripts 目录,它非常适合我。然而,这似乎是一个只能在 KDE 中找到的文件夹。我正在使用 Ubuntu 18.04 的默认 DE。
我正在学习 bash。没什么特别的,只是摆弄我自己的脚本。很有趣。
在查看记录 bash 脚本的选项时,我遇到了这个问题。
双“##”和标签“@var”、“@brief”等的意义是什么?
我猜我在这里错过了一个技巧。
## @var DEBUG
## @brief Enables / disables the debug mode.
## @details The debug mode adds extra information for troubleshooting purposes.
## Value: yes or no (y / n).
Run Code Online (Sandbox Code Playgroud) #!/bin/bash
counter=2
while [ $counter -lt 19 ]
do
username= head -n $counter ./user_sheet.csv | tail -n 1 | cut -d ';' -f1
psswd= head -n $counter ./user_sheet.csv | tail -n 1 | cut -d ';' -f2
full_name= head -n $counter ./user_sheet.csv | tail -n 1 | cut -d ';' -f3
group= head -n $counter ./user_sheet.csv | tail -n 1 | cut -d ';' -f4
second_group= head -n $counter ./user_sheet.csv | tail -n 1 | cut -d ';' -f5
sudo …Run Code Online (Sandbox Code Playgroud)