我正在尝试从一个变量名的文件中创建多个shell脚本。我有一个bash循环,它创建了必要的行,但是每次都需要一个新的文件。我目前拥有的脚本将所有内容放入一个文件中。输入文件(test.txt)在单独的行中包含每个变量:
a
b
c
下面是我目前的代码:
#!/bin/bash
num=0
echo $num
for x in $(<test.txt)
do
echo \#\!/bin/bash
echo \#SBATCH -N 1
echo \#SBATCH -t 6:00:00
echo \#SBATCH --job-name=${x}
echo
我正在试着写一个脚本来备份我的“我的世界”服务器,昨天它工作得很好,但现在不行了。
代码:
#!/bin/bash
mc_backup() {
now=$(date "+%Y-%m-%d_%Hh%Mm")
backupFile="$backupPath/${server}_${now}.tar"
cd "$serverPath" || exit
dir=("$(ls)")
for target in "${unwanted[@]}"; do
for i in
我想写一个bash脚本,在我不知道确切位置的情况下从zip存档中删除某些文件。
我已经走了这么远:
for file in *.cbz
do
zip -sf "$file" | grep banner | sed 's/^ *//g' | { while read p; do zip -d $file ${p// /\\ } ; done }
done
我的想法是:
zip -sf "$file"
给我存档中的所有文件
| grep banner
这只会得到我感兴趣的代码行。
| sed 's/^ *//g'
我用管道连接
在恢复模式下,我试图在mac上使用bash脚本移动一些文件。在启动到恢复之后,我可以通过在终端中手动输入命令来成功地移动文件。然而,一个目标是记录这个过程并使其可移植,因此需要一个脚本。当我试图从脚本中运行mv命令时,我得到了错误No such file or directory。我已经确认,当我手动输入文件时,命令执行正确,但是脚本继续出错。
我尝试使用双引号(")和美元符号($)、美元符号($)和大括号({})以及其他一些组合来进行变量评估。他们都因为同样的错误而失败。我还尝试在src上使用拖尾斜杠,在src上使用尾斜杠(*),在src和dest上使用尾斜杠。我完全不知所措。这可能
因此,使用windows,我创建了一个.sh文件(位于~/../中的passwords.sh),在该文件上运行了以下命令:
chmod 600 passwords.sh
sudo shown toot:root passwords.sh
然后,在我的.bash_profile中(在主文件夹~/)中,我有以下函数
function passwords {
case "1$" in
'update')
'sudo vim ~/../passwords.sh';;
*)
在Ubuntu18.04上,我使用zsh (5.4.2),并使用oh- my -zsh作为我的shell。
当我刚刚运行以下脚本(./my_script -a 1)时,它可以在zsh中正确执行:
#! /bin/bash
while getopts "a:" OPTION; do
case $OPTION in
a)
[[ ! $OPTARG =~ 1|2|3 ]] && {
echo "Incorrect architecture provided
在试图通过使用空字符作为分隔符正确处理文件/文件夹名称列表()时,我无意中发现了一个奇怪的Bash行为,我不明白:
当将包含一个或多个空字符的字符串赋值给变量时,空字符将丢失/忽略/不存储。
例如,
echo -ne "n\0m\0k" | od -c # -> 0000000 n \0 m \0 k
但是:
VAR1=`echo -ne "n\0m\0k"`
echo -ne "$VAR1" | od -c # -> 0000000 n m k
这意味着我需要将该字符串写入文件(例如,在/tmp中
我想扩展现有的环境变量JAVA_OPTS,其中包含一个引号字符串的参数:
-XX:OnOutOfMemoryError="echo Killing the process because of the OutOfMemoryError.; kill -9 %p"
我试着用反斜杠转义引号:
#!/bin/bash
JAVA_OPTS="$JAVA_OPTS -XX:OnOutOfMemoryError=\"echo Killing the process because of the OutOfMemoryError.; kill -9 %p\""