可能的重复:
sudo 权限被拒绝
我需要通过 bash 脚本编辑 /etc/network/interfaces,我正在做如下的事情......
sudo echo something > /etc/network/interfaces
当执行此行时,我收到下面提到的错误:
bash: /etc/network/interfaces: Permission denied
但是如果我用某个编辑器编辑同一个文件,它可以完美地工作......即
sudo nano /etc/network/interfaces
上面让我编辑这个文件。
我认为这很容易,但我忽略了一些简单的事情:
我有一个名为test. 例如,它包含字符串Alfred Hitchcock。我想用Alfred\ Hitchcock.
我想这会做到:
grep -r1 ' ' /path/to/test | xargs sed -i 's/ /\ /g'
Run Code Online (Sandbox Code Playgroud)
但它告诉我:
sed: can't read Alfred: No such file or directory
sed: can't read Hitchcock: No such file or directory
Run Code Online (Sandbox Code Playgroud)
不太确定发生了什么。任何帮助都会很棒,谢谢。
1x cpu 内核对于 SMB 文件共享 Ubuntu 盒是不够的。
我们如何在午夜关闭虚拟机,增加 CPU 内核 1->2,然后打开那个盒子(脚本方式)?
(它是一个 Windows 主机......但也欢迎 Linux 示例 :)
截图在这里 - > http://dwaves.de/index.php/2014/09/22/virtualbox-box-management/
我有一个包含以下内容的文件。
.
.
hello
.
.
.
world
.
.
hello
.
.
.
.
.
world
.
.
Run Code Online (Sandbox Code Playgroud)
点表示文件中的其他行。这里我只需要 gerp hello 和 world 行。这意味着输出应该如下所示。
hello
world
hello
world
Run Code Online (Sandbox Code Playgroud)
如何做到这一点?
谢谢,
我正在做的是这样的:
我想将我的脚本分成多个块。在一个地方定义所有变量的最佳实践是什么?我应该在 init 脚本中将它们全部定义并导出,还是有更好的方法让我的脚本的每一部分都查看一个静态变量文件?也许是 JSON 之类的?这是一个例子
项目/main.sh
#!/bin/bash
new_user="poopmacscoop"
a_list_of_packages="pyhon3 nmap apache2.... others"
some_other_info_for_another_script="important info"
menu () {
read # blah blah whatcha wanna run?
# other bits
}
opts () {
case ... # a bunch of options
1) ./src/another_script.sh # one of a bunch of scripts in a separate folder
}
while true
do
menu
opts
done
Run Code Online (Sandbox Code Playgroud)
现在在 ./src/another_script.sh 脚本中,为了轻松和跳转能力处理 vars 的最佳方法是什么?(这是一个技术术语)
我正在尝试创建一个脚本,该脚本应该git log每 1 秒刷新一次。这就是我所拥有的:
while :
do
clear
git log --all --decorate --oneline --graph
sleep 1
done
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为git log等待用户点击q退出 - 因此循环被卡住了。我怎样才能解决这个问题?
我正在编写(我认为会是)一个快速的小bash功能来识别Photos.app从 DSLR导入到 Apple 标准的最新照片。
到目前为止,它看起来像这样:
find ~/Pictures/Photos\ Library.photoslibrary/Masters -type f
很简单。照原样,它列出了整个导入照片库。我的第一直觉是简单| tail -n 1,但文件没有以任何可辨别的顺序列出。
我考虑过| sort -V,但文件名(即IMG_0123.CR2)出现乱序并不少见。
仅供参考:此 BSD 版本find不支持-printfGNU 版本中的选项。
我想根据它们的 MD5 值删除重复的文件。我已经在下面找到了脚本,但是如何修改它以使其递归运行?
因此,例如我有包含 3 个子文件夹 A B C 的文件夹
我希望 ./ ./A/ ./B/ ./C/ 中的所有文件检查它们的 md5 并相互比较,如果发现正匹配,则随机删除任一匹配。最终不再存在重复项。我不在乎哪个匹配首先被删除。
我希望我清楚地表达了我需要实现的目标,如果没有,请告诉我:)
#!/bin/bash
while true
do
echo "Enter the directory:"
read directory
if [ -d $directory ]; then
break
else
echo "Invalid directory"
fi
done
for FILE in `ls $directory`
do
if [ ! -f $FILE ]; then
break;
fi
h=`md5sum $directory/$FILE | awk '{ print $1 }'`
for f in `ls $directory`
do
if [ -f $f ] && [ $FILE != …Run Code Online (Sandbox Code Playgroud) 如何在目录中递归地找到所有带有大写扩展名的文件。
我试过了 :
$ find -name "*.[A-Z][A-Z][A-Z]"
Run Code Online (Sandbox Code Playgroud)
似乎有效,但当然这不会检查最后一个点后超过 3 个字母的文件。
我有一个命令,它输出一些我想传递给另一个命令的参数。但是,当我在子 shell 中运行命令时,输出会受到分词,除非我引用整个内容,在这种情况下,它是单个词。
我希望 subshell 输出拆分单词,但我希望单词拆分尊重引号,但事实并非如此。有什么方法(除了eval)可以将子shell输出拆分为单词但尊重引号?
鉴于args命令定义为
#!/bin/sh -
printf "%d args:" "$#"
printf " <%s>" "$@"
echo
Run Code Online (Sandbox Code Playgroud)
我可以跑
$ args 'foo bar' 'one two'
2 args: <foo bar> <one two>
Run Code Online (Sandbox Code Playgroud)
但我找不到一种方法让子shell 传递 2 个参数。
$ echo "\"'foo bar'\" 'one two'"
"'foo bar'" 'one two'
$ args $(echo "\"'foo bar'\" 'one two'")
4 args: <"'foo> <bar'"> <'one> <two'>
$ args "$(echo "\"'foo bar'\" 'one two'")"
1 args: <"'foo bar'" 'one two'>
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用 eval …