标签: scripts

如何在不输入 bash 的情况下执行自定义脚本?

我想运行我的自定义脚本,但每次需要执行它时,我都必须在脚本名称之前输入 bash。但我想像运行其他脚本一样运行它,ls git sed chmod例如不需要在脚本名称之前输入 bash 。

我在这里没有找到任何解决方案,但最接近的是这个Bash 脚本不执行任何操作

我创建了一个名为test

#!/bin/bash

echo Hello
Run Code Online (Sandbox Code Playgroud)

但是当我在终端上输入它时,它没有给出错误并且不打印任何内容

user@notebook:~$ test
user@notebook:~$
Run Code Online (Sandbox Code Playgroud)

但当我用 bash 键入它时它会起作用

user@notebook:~$ bash test
Hello
user@notebook:~$
Run Code Online (Sandbox Code Playgroud)

我已将文件添加到~/.local/bin/,授予它权限chmod a+x test并在我的变量~/.local/bin中设置。PATH


我的stat /bin/bash

  File: /bin/bash
  Size: 1396520     Blocks: 2728       IO Block: 4096   regular file
Device: 806h/2054d  Inode: 30408799    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-05-07 12:23:17.179593764 +0500
Modify: 2022-01-06 21:23:33.000000000 +0500
Change: 2022-10-08 …
Run Code Online (Sandbox Code Playgroud)

bash scripts

0
推荐指数
1
解决办法
144
查看次数

定时器程序依次播放 4 个声音,每个声音 30 秒

有人可以帮助我吗?我需要一个 bash 脚本来播放一个短声音文件,等待 30 秒,播放另一个声音文件,再等待 30 秒。

(我会以此作为提醒,在使用电动牙刷时,在牙齿的每个象限上花费 30 秒。)

mpg123 /usr/share/sounds/My_Sounds/Alarm_Clock_Sound.mp3
sleep 30
mpg123 /usr/share/sounds/My_Sounds/Alarm-sound-buzzer.mp3
sleep 30
mpg123 /usr/share/sounds/My_Sounds/facility-alarm.mp3
sleep 30
Run Code Online (Sandbox Code Playgroud)

但它只播放第一个声音文件。??

bash scripts ubuntu-mate 20.04

0
推荐指数
1
解决办法
425
查看次数

使用终端一次复制 100 个文件

是否可以选择使用cp命令将前 100 个文件从目录复制到另一个位置?如果没有还有其他方法可以做到这一点吗?我需要写脚本吗?

command-line scripts cp

-1
推荐指数
1
解决办法
1万
查看次数

=0 未找到 bash 命令

grep "::=BEGIN" -q < /home/erawson/bin/HP/adaptec.mib
CHK= echo $?
if ($CHK = "0") ; then
echo "failed"
else    
     exit
fi
Run Code Online (Sandbox Code Playgroud)

错误是:

/home/erawson/bin/try1: line 10: =: command not found
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts

-1
推荐指数
1
解决办法
7215
查看次数

. file 在 bash 中执行文件,&gt; file 清空文件内容

为什么. file在 bash中使用即使它不是可执行文件也会执行文件?是因为它使用当前的 bash 会话来运行它,所以它的工作方式就像打字一样bash file

此外,沿着类似的路线。我知道打字> file会删除文件的内容。但为什么?我知道这会将标准输入发送到文件。但是标准输入不是键盘吗?所以我不应该在理论上换一个新的路线并输入内容吗?我不明白。

command-line bash scripts

-1
推荐指数
1
解决办法
331
查看次数

使用带有 mkdir 和变量的 shell 脚本一次创建多个目录

我想mkdir在 shell 脚本中使用如下创建目录树。

Tutorial
?
??? abc
?   |
?   ??? def
?       
??? pqr
    ??? stu
    ?   
    ??? vwx
Run Code Online (Sandbox Code Playgroud)

当我在终端中运行以下命令时,

mkdir -p /home/LinuxServer/GIT/bbb/Tutorial/{abc/def,pqr/{stu,vwx}}
Run Code Online (Sandbox Code Playgroud)

然后它正在工作。

但是当我执行以下 shell 脚本时,它没有正确创建目录树

DIRECTORY_PATH="/home/LinuxServer/GIT/bbb/"
CREATE_DIRECTORY_STRUCTURE="Tutorial/{abc/def,pqr/{stu,vwx}}"
TUTORIAL_PATH="$DIRECTORY_PATH$CREATE_DIRECTORY_STRUCTURE"

mkdir -p  $TUTORIAL_PATH
Run Code Online (Sandbox Code Playgroud)

你能帮我理解这个问题吗?

command-line bash scripts

-1
推荐指数
1
解决办法
5265
查看次数

在执行 shell 脚本时使用选项解析参数

我在脚本中有 5 个选项,例如获取 IP 地址、可用内存、CPU 使用率、主机名和用户名。

我想做一个脚本来获取所有输出或任何人。

例如 :

如果我执行

system_info.sh -i ip -fm free -c cpu -h host -u user
Run Code Online (Sandbox Code Playgroud)

或者

system_info.sh -all all
Run Code Online (Sandbox Code Playgroud)

那么它应该给出所有的输出。

如果假设我只想要一个输出,则需要运行相同的脚本

system_info.sh -fm free
system_info.sh -fm free -i ip
Run Code Online (Sandbox Code Playgroud)

我有这个想法,但我不知道如何设置这些选项并在脚本中进行验证。

请建议我如何设置这些选项

command-line bash scripts

-1
推荐指数
1
解决办法
1102
查看次数

仅在具有特定字符串的行中替换另一个字符串

使用 Shell 脚本查找单词“here”的出现,并且仅在这些行中,将单词“this”替换为“that”。其余所有其他行都按原样打印。

scripts text-processing

-1
推荐指数
1
解决办法
4524
查看次数

如何设置变量的文件权限

我需要将文件权限号设置为变量,以便稍后我可以在循环中使用它。能做到吗?

command-line scripts

-1
推荐指数
1
解决办法
1310
查看次数

在 bash 中使用 break 时的不同输出

我写了一个简单的脚本:

for DIR in /etc/*; do
    if [ "$DIR" == "/etc/dhcp" ]; then
        echo $DIR
        break
    fi
done
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我breakfi它之后使用它不会产生理想的结果。

那个脚本和这个脚本有什么区别?

for DIR in /etc/*; do
    if [ "$DIR" == "/etc/dhcp" ]; then
        echo $DIR
    fi
    break
done
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts

-1
推荐指数
1
解决办法
101
查看次数

标签 统计

scripts ×10

bash ×7

command-line ×7

20.04 ×1

cp ×1

text-processing ×1

ubuntu-mate ×1