小编fro*_*odo的帖子

解释这段代码

有人可以解释这段代码意味着什么吗?

我相信第二行是"如果退出状态为零",则回显"有效命令",但我不理解第一行

$@ &>/dev/null
if [[ $? = 0 ]]
then
   echo "Valid command"
fi
Run Code Online (Sandbox Code Playgroud)

bash

10
推荐指数
2
解决办法
193
查看次数

bash脚本更改目录并使用参数执行命令

我正在尝试执行以下任务:编写一个名为shell的脚本changedir,该脚本采用目录名,命令名和(可选)一些其他参数.然后,脚本将更改为指示的目录,并执行使用提供的参数指示的命令.

这是一个例子:

$ sh changedir /etc ls -al
Run Code Online (Sandbox Code Playgroud)

这应该更改为/etc目录并运行命令ls -al.

到目前为止,我有:

#!/bin/sh
directory=$1; shift
command=$1; shift
args=$1; shift
cd $directory
$command
Run Code Online (Sandbox Code Playgroud)

如果我运行上面的内容,就像sh changedir /etc ls它更改并列出目录.但是,如果我添加参数,ls它不起作用.我需要做些什么来纠正它?

bash

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

在bash中读取文件的前三行

我有以下shell脚本来读取文件的前三行并将它们打印到屏幕 - 它无法正常工作,因为它打印出2,3,4行而不是行1,2,3 - 我在做什么错了?

exec 6< rhyme.txt

while read file <&6 ;
do
        read line1 <&6
        read line2 <&6
        read line3 <&6

        echo $line1 
        echo $line2 
        echo $line3 
done

exec 6<&-
Run Code Online (Sandbox Code Playgroud)

感谢您的回答 - 我知道head命令但是想要使用读取和文件描述符来显示前三行

linux bash shell

6
推荐指数
3
解决办法
3万
查看次数

bash脚本中的参数错误太多

我已修改此脚本以从YouTube下载歌曲但我在运行时遇到以下错误:

sh youtube2mp3.sh https://www.youtube.com/watch?v=gpOJ6iu8fqQ
Run Code Online (Sandbox Code Playgroud)

错误:

youtube2mp3.sh: line 31: [: too many arguments
youtube2mp3.sh: line 39: [: too many arguments
youtube2mp3.sh: line 49: [: too many arguments
Sorry but the system encountered a problem.
Run Code Online (Sandbox Code Playgroud)

行号指的是if [ -f $video_title.$ext1 ]三行......我认为我的论点没有,因为它在以前的版本中有效,但我仍然坚持这一点 - 有人可以解释我需要做些什么来纠正它吗?

address=$1

video_title="$(python youtube-dl $address)"

ext1="flv"
ext2="mp4"
ext3="webm"



if [ -f  $video_title.$ext1 ]
then
    ffmpeg -i $video_title.$ext1 "$video_title".wav
    lame "$video_title".wav "$video_title".mp3
    rm $video_title.$ext1 "$video_title".wav
else
    if [ -f $video_title.$ext2 ]
    then
        ffmpeg -i $video_title.$ext2 "$video_title".wav
        lame "$video_title".wav "$video_title".mp3
        rm …
Run Code Online (Sandbox Code Playgroud)

bash shell

6
推荐指数
2
解决办法
2万
查看次数

读git diff输出

我刚刚开始学习如何使用git并在下面的文件上运行git diff - 我对你如何阅读输出感到有点困惑 -

根据我的理解到目前为止,下面说的是工作目录和与file01相关的索引与file02之间存在差异.有些人可以用英语解释你如何阅读这部分输出 - >@@ -1,4 +1 @@

谢谢你的帮助

diff --git a/file01 b/file01
index cc17fa4..d0a432b 100644
--- a/file01
+++ b/file01
@@ -1,4 +1 @@
-datafiles
-file01
-file02
-file03
+This is a change
diff --git a/file02 b/file02
index e69de29..552c22e 100644
--- a/file02
+++ b/file02
@@ -0,0 +1 @@
+and this is another change
Run Code Online (Sandbox Code Playgroud)

git diff github

5
推荐指数
1
解决办法
2289
查看次数

sed删除所有大写字母

我试图删除所有出现的大写字母只在下面的字符串中使用下面的sed命令,但它只输出我输入的刺痛 - 如何正确放置替换?

echo "Dog boy Did Good" | sed 's/\([A-Z]\+\)/\1/g'
Run Code Online (Sandbox Code Playgroud)

bash sed

3
推荐指数
1
解决办法
6736
查看次数

如何在bash脚本中正确循环?

我已经编写了这个脚本,它取一个停止和开始数字并计算其间的数字 - 无论"停止"数字是否被重新调整,我都想让它继续增加所以它一直在计数,直到ctrl + z为止按下但它没有认识到我的时间条件 - 有人可以为我纠正语法吗?

  #!/bin/sh

stopvalue=$1
startvalue=$2

if [ $# -ne 2  ]
then
   echo "Error - You must enter two numbers exactly - using default start value of 1"
#exit 0
fi

echo ${startvalue:=1}

while (test "$startvalue" -le "$stopvalue" ||  "$startvalue" -ge "$stopvalue")
do
       startvalue=$((startvalue+1))
        echo $startvalue
done
Run Code Online (Sandbox Code Playgroud)

bash

2
推荐指数
4
解决办法
3万
查看次数

Sed - 将负数转换为正数

我试图将所有负数转换为正数,并且到目前为止已经提出了这个问题

echo "-32 45 -45 -72" | sed -re 's/\-([0-9])([0-9])\ /\1\2/p'
Run Code Online (Sandbox Code Playgroud)

但它输出不起作用:

3245 -45 -72

我想通过使用\ 1\2我会得到正数吗?

我哪里错了?

bash sed

2
推荐指数
1
解决办法
7739
查看次数

如何暂停 foreach PowerShell 循环

我在下面创建了这个简单的脚本来循环访问包含用户列表的文件,并为文件中的每个用户应用配额规则。

它可以工作,但在处理过程中有时会失败,因为我相信文本文件中的大量用户有时会阻止访问。有没有办法让循环在 foreach 循环的每次迭代后或在 foreach 循环的五次迭代后暂停 5 - 10 秒,直到文件管理器完全更新这些配额,然后继续处理文件中的下一个用户?

ForEach ($adname in Get-Content "C:\Users\mick\Desktop\scripts\staff.txt")
{
    Invoke-NcSsh -Command "volume quota policy rule create -vserver FS-ONE -policy-name default -volume data -type user -target $adname -qtree """" -user-mapping off -disk-limit 3GB -soft-disk-limit 2GB -threshold 3GB"
}

Start-NcQuotaResize -vserver FS-ONE -volume data
Run Code Online (Sandbox Code Playgroud)

powershell powershell-2.0

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

如何在bash中找到可用的可执行文件

我编写了这个小脚本来查找作为参数传递的可执行文件,例如

./testexec du ls md 
Run Code Online (Sandbox Code Playgroud)

如何让脚本不输出未找到的命令 - 例如,不显示"md"命令的错误输出?

  #!/bin/sh

    for filename in "$@"
    do
    which $filename
    done
Run Code Online (Sandbox Code Playgroud)

bash

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

标签 统计

bash ×8

sed ×2

shell ×2

diff ×1

git ×1

github ×1

linux ×1

powershell ×1

powershell-2.0 ×1