相关疑难解决方法(0)

如何迭代Bash中变量定义的一系列数字?

当变量给出范围时,如何在Bash中迭代一系列数字?

我知道我可以这样做(在Bash 文档中称为"序列表达式" ):

 for i in {1..5}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)

这使:

1
2
3
4
5

但是,如何用变量替换任何一个范围端点?这不起作用:

END=5
for i in {1..$END}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)

哪个印刷品:

{} 1..5

syntax bash shell for-loop

1409
推荐指数
18
解决办法
102万
查看次数

如何按日期在Git结账?

我正在处理源代码中的回归.我想告诉Git:"根据参数化日期/时间检查来源".这可能吗?

我也在目前的观点中进行了改变,我不想失去.理想情况下,我想在当前源和我之前根据之前的日期感兴趣的某些版本之间来回切换.

git git-checkout

286
推荐指数
8
解决办法
12万
查看次数

跟踪所有远程git分支作为本地分支

将单个远程分支作为本地分支进行跟踪非常简单.

$ git checkout --track -b ${branch_name} origin/${branch_name}
Run Code Online (Sandbox Code Playgroud)

将所有本地分支推送到远程,根据需要创建新的远程分支也很容易.

$ git push --all origin
Run Code Online (Sandbox Code Playgroud)

我想反过来.如果我在一个源上有X个远程分支:

$ git branch -r 
branch1
branch2
branch3
.
.
.
Run Code Online (Sandbox Code Playgroud)

我是否可以为所有远程分支创建本地跟踪分支,而无需手动创建每个分支?说出类似的话:

$ git checkout --track -b --all origin
Run Code Online (Sandbox Code Playgroud)

我用google搜索和RTM,但到目前为止已经上传了.

git branch

160
推荐指数
8
解决办法
7万
查看次数

命令替换:反引号或美元符号/封闭?

在bash中执行命令替换的首选方法是什么?

我总是这样做:

echo "Hello, `whoami`."
Run Code Online (Sandbox Code Playgroud)

但最近,我经常看到它写得像这样:

echo "Hello, $(whoami)."
Run Code Online (Sandbox Code Playgroud)

什么是首选语法,为什么?或者他们几乎可以互换?

我倾向于赞成第一个,因为我的文本编辑器似乎知道它是什么,并且适当地进行语法高亮.

在这里读到,在每种情况下,转义字符的行为都有所不同,但我不清楚哪种行为更可取,或者它只取决于具体情况.

附带问题:在一个脚本中使用两个表单是不好的做法,例如嵌套命令替换时?

bash shell command substitution

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

在shell脚本中使用$()而不是反引号有什么好处?

有两种方法可以捕获命令行的输出bash:

  1. Legacy Bourne shell反手``:

     var=`command`
    
    Run Code Online (Sandbox Code Playgroud)
  2. $() 语法(据我所知,特定于Bash,或至少不受原始Bourne等非POSIX旧shell支持)

     var=$(command)
    
    Run Code Online (Sandbox Code Playgroud)

与反引号相比,使用第二种语法有什么好处吗?或两者完全相同?

syntax sh backticks

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

在git中列出每个分支及其最后修订的日期

我需要从远程仓库中删除旧的和未维护的分支.我正试图找到一种方法来列出他们上次修改日期的远程分支,但我不能.

有人知道以这种方式列出远程分支的简单方法吗?

git maintenance branch administration

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

如何使用bash测试Internet连接?

如何在不ping某些网站的情况下测试互联网连接?我的意思是,如果有连接但网站已关闭怎么办?有检查与世界的联系吗?

connection bash ping

98
推荐指数
10
解决办法
22万
查看次数

在意外的bash退出中删除创建的临时文件

我正在从bash脚本创建临时文件.我在处理结束时删除它们,但由于脚本运行了很长时间,如果我在运行期间将其删除或只是CTRL-C,则不会删除临时文件.
有没有办法在执行结束之前捕获这些事件并清理文件?

此外,这些临时文件的命名和位置是否有某种最佳实践?
我目前不确定使用:

TMP1=`mktemp -p /tmp`
TMP2=`mktemp -p /tmp`
...
Run Code Online (Sandbox Code Playgroud)

TMP1=/tmp/`basename $0`1.$$
TMP2=/tmp/`basename $0`2.$$
...
Run Code Online (Sandbox Code Playgroud)

或者是否有更好的解决方案?

bash exit temporary-files

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

在bash中使用命令的结果作为参数?

要为文件夹中的所有音乐创建播放列表,我在bash中使用以下命令:

ls > list.txt
Run Code Online (Sandbox Code Playgroud)

我想使用pwd(打印工作目录)命令的结果作为播放列表的名称.

就像是:

ls > ${pwd}.txt
Run Code Online (Sandbox Code Playgroud)

这不起作用 - 任何人都可以告诉我我需要用什么语法来做这样的事情?

编辑:正如评论中所提到的,pwd最终会给出一个绝对路径,所以我的播放列表最终会在某个目录中被命名为.txt - d'oh!所以我必须修剪路径.感谢您发现 - 我可能花了很多年的时间想知道我的文件去了哪里!

bash command-line

62
推荐指数
4
解决办法
5万
查看次数

bash脚本中的反引号和$()有什么区别?

我在bash脚本中看到两种不同的形式,它们似乎也是一样的:

`some command`
Run Code Online (Sandbox Code Playgroud)

$(some command)
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别,什么时候应该使用它们?

bash backticks

55
推荐指数
1
解决办法
6979
查看次数